summary refs log tree commit diff stats
path: root/tests/lent/tnot_allowed_lent.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lent/tnot_allowed_lent.nim')
-rw-r--r--tests/lent/tnot_allowed_lent.nim24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/lent/tnot_allowed_lent.nim b/tests/lent/tnot_allowed_lent.nim
new file mode 100644
index 000000000..a1db6d184
--- /dev/null
+++ b/tests/lent/tnot_allowed_lent.nim
@@ -0,0 +1,24 @@
+discard """
+  errormsg: "expression has no address"
+"""
+type
+  MyObject = object
+    x: seq[string]
+
+proc mytest1(s: MyObject, i: int): lent string =
+  ## works fine
+  if i < s.x.len - 1 and s.x[i] != "":
+    result = s.x[i]
+  else: raise newException(KeyError, "err1")
+
+proc mytest2(s: MyObject, i: int): lent string =
+  ## reject due to if expr
+  if i < s.x.len - 1 and s.x[i] != "": s.x[i]
+  else: raise newException(KeyError, "err1")
+
+for i in 1..5:
+  var x = MyObject(x: @["1", "2", "3"])
+  echo mytest1(x, 1)
+  echo mytest2(x, 1)
+
+