1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- discard """
- output: '''x
- [10, 11, 12, 13]'''
- """
- # bug #14805
- type Foo = object
- a: string
- proc bar(f: var Foo): lent string =
- result = f.a
- var foo = Foo(a: "x")
- echo bar(foo)
- # bug #14878
- # proc byLentImpl[T](a: T): lent T = a
- proc byLentVar[T](a: var T): lent T =
- result = a
- # result = a.byLentImpl # this doesn't help
- var x = 3 # error: cannot take the address of an rvalue of type 'NI *'
- var xs = [10,11,12,13] # SIGSEGV
- let x2 = x.byLentVar
- let xs2 = xs.byLentVar
- echo xs2
- # bug #22138
- type Xxx = object
- type
- Opt[T] = object
- case oResultPrivate*: bool
- of false:
- discard
- of true:
- vResultPrivate*: T
- func value*[T: not void](self: Opt[T]): lent T {.inline.} =
- self.vResultPrivate
- template get*[T: not void](self: Opt[T]): T = self.value()
- method connect*(
- self: Opt[(int, int)]) =
- discard self.get()[0]
|