File: tnot_allowed_lent.nim

package info (click to toggle)
nim 2.2.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,951,160 kB
  • sloc: sh: 24,599; ansic: 1,771; python: 1,493; makefile: 1,013; sql: 298; asm: 141; xml: 13
file content (24 lines) | stat: -rw-r--r-- 538 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)