mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
50 lines
526 B
Nim
50 lines
526 B
Nim
discard """
|
|
output: '''
|
|
1
|
|
2
|
|
3
|
|
4
|
|
2
|
|
88
|
|
timplicit done
|
|
'''
|
|
"""
|
|
|
|
|
|
for x in [1, 2, 3, 4]:
|
|
echo x
|
|
|
|
|
|
type
|
|
TValue* {.pure, final.} = object of RootObj
|
|
a: int
|
|
PValue = ref TValue
|
|
PPValue = ptr PValue
|
|
|
|
|
|
var x: PValue
|
|
new x
|
|
var sp: PPValue = addr x
|
|
|
|
sp.a = 2
|
|
if sp.a == 2: echo 2 # with sp[].a the error is gone
|
|
|
|
# Test the new auto-deref a little
|
|
|
|
{.experimental.}
|
|
|
|
proc p(x: var int; y: int) = x += y
|
|
|
|
block:
|
|
var x: ref int
|
|
new(x)
|
|
|
|
x.p(44)
|
|
|
|
var indirect = p
|
|
x.indirect(44)
|
|
|
|
echo x[]
|
|
|
|
echo "timplicit done"
|