summary refs log tree commit diff stats
path: root/tests/fields/timplicitfieldswithpartial.nim
blob: a315cc5d0bcc11137ca71563faf8d4e70750d1b4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
discard """
  output: '''(foo: 38, other: string here)
43
100
90'''
"""

type
  Base = ref object of RootObj
  Foo {.partial.} = ref object of Base

proc my(f: Foo) =
  #var f.next = f
  let f.foo = 38
  let f.other = "string here"
  echo f[]
  echo f.foo + 5

var g: Foo
new(g)
my(g)

type
  FooTask {.partial.} = ref object of RootObj

proc foo(t: FooTask) {.liftLocals: t.} =
  var x = 90
  if true:
    var x = 10
    while x < 100:
      inc x
    echo x
  echo x

foo(FooTask())