123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- discard """
- output: '''
- tbObj of TC true
- true
- 5
- true
- is Nil false
- '''
- """
- block t1053:
- type
- TA = object of RootObj
- a: int
- TB = object of TA
- b: int
- TC = object of TB
- c: int
- proc test(p: TA) =
- if p of TB:
- echo "tbObj of TC ", p of TC
- var v = TC()
- v.a = 1
- v.b = 2
- v.c = 3
- test(v)
- block t924:
- type
- MyObject = object of RootObj
- x: int
- var asd: MyObject
- proc isMyObject(obj: RootObj) =
- echo obj of MyObject
- if obj of MyObject:
- let a = MyObject(obj)
- echo a.x
- asd.x = 5
- isMyObject(asd)
- block t4673:
- type
- BaseObj[T] = ref object of RootObj
- SomeObj = ref object of BaseObj[int]
- proc doSomething[T](o: BaseObj[T]) =
- echo "true"
- var o = new(SomeObj)
- o.doSomething() # Error: cannot instantiate: 'T'
- block t1658:
- type
- Loop = ref object
- onBeforeSelect: proc (L: Loop)
- var L: Loop
- new L
- L.onBeforeSelect = proc (bar: Loop) =
- echo "is Nil ", bar.isNil
- L.onBeforeSelect(L)
- block t2508:
- type
- GenericNodeObj[T] = ref object
- obj: T
- Node = ref object
- children: seq[Node]
- parent: Node
- nodeObj: GenericNodeObj[int]
- proc newNode(nodeObj: GenericNodeObj): Node =
- result = Node(nodeObj: nodeObj)
- newSeq(result.children, 10)
- var genericObj = GenericNodeObj[int]()
- var myNode = newNode(genericObj)
- block t2540:
- type
- BaseSceneNode[T] = ref object of RootObj
- children: seq[BaseSceneNode[T]]
- parent: BaseSceneNode[T]
- SceneNode[T] = ref object of BaseSceneNode[T]
- SomeObj = ref object
- proc newSceneNode[T](): SceneNode[T] =
- new result
- result.children = @[]
- var aNode = newSceneNode[SomeObj]()
- block t3038:
- type
- Data[T] = ref object of RootObj
- data: T
- Type = ref object of RootObj
- SubType[T] = ref object of Type
- data: Data[T]
- SubSubType = ref object of SubType[int]
- SubSubSubType = ref object of SubSubType
|