* fix #16110

* refs #16110

* fix comment

* Trigger build

* use shallowCopy for efficiency
This commit is contained in:
cooldome 2020-11-26 13:44:06 +00:00 • committed by GitHub
commit 2f1a9eadd7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 8 deletions

View file

@ -71,15 +71,30 @@ assert: check_gen_proc(len(a)) == (false, true)
macro check(x: type): untyped =
let z = getType(x)
let y = getImpl(z[1])
echo z.treeRepr
let y = getImpl(z[1])
let sym = if y[0].kind == nnkSym: y[0] else: y[0][0]
expectKind(z[1], nnkSym)
expectKind(y[0], nnkSym)
doAssert(y[0] == z[1])
expectKind(sym, nnkSym)
expectKind(y[2], nnkObjectTy)
doAssert(sym == z[1])
type
TirePtr = ptr object
code: int
var z: TirePtr
check(typeof(z[]))
TireRef* = ref object
code: int
TireRef2* {.inheritable.} = ref object
code: int
TireRef3* {.inheritable.} = object
code: int
var z1: TirePtr
check(typeof(z1[]))
var z2: TireRef
check(typeof(z2[]))
var z3: TireRef2
check(typeof(z3[]))
check(TireRef3)