123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- type Obj = object
- foo: int
- proc makeObj(x: int): Obj =
- result.foo = x
- block: # object basic methods
- block: # it should convert an object to a string
- var obj = makeObj(1)
- # Should be "obj: (foo: 1)" or similar.
- doAssert($obj == "(foo: 1)")
- block: # it should test equality based on fields
- doAssert(makeObj(1) == makeObj(1))
- # bug #10203
- type
- TMyObj = TYourObj
- TYourObj = object of RootObj
- x, y: int
- proc init: TYourObj =
- result.x = 0
- result.y = -1
- proc f(x: var TYourObj) =
- discard
- var m: TMyObj = init()
- f(m)
- var a: TYourObj = m
- var b: TMyObj = a
- # bug #10195
- type
- InheritableFoo {.inheritable.} = ref object
- InheritableBar = ref object of InheritableFoo # ERROR.
- block: # bug #14698
- const N = 3
- type Foo[T] = ref object
- x1: int
- when N == 2:
- x2: float
- when N == 3:
- x3: seq[int]
- else:
- x4: char
- x4b: array[9, char]
- let t = Foo[float](x1: 1)
- doAssert $(t[]) == "(x1: 1, x3: @[])"
- doAssert t.sizeof == int.sizeof
- type Foo1 = object
- x1: int
- x3: seq[int]
- doAssert t[].sizeof == Foo1.sizeof
- # bug #147
- 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
- doAssert sp.a == 2
|