diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2024-07-11 21:39:44 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-11 15:39:44 +0200 |
commit | 173b8a8c58cf649ccc1d2d048d8e2b1407f20d78 (patch) | |
tree | d005445299063279897f4ff744120cbceb23d5ec /tests/errmsgs | |
parent | 9092244f870434ff22f180f137a4a65e9995933b (diff) | |
download | Nim-173b8a8c58cf649ccc1d2d048d8e2b1407f20d78.tar.gz |
fixes #3011; handles meta fields defined in the ref object (#23818)
fixes #3011 In https://github.com/nim-lang/Nim/pull/23532, meta fields that defined in the object are handled. In this PR, RefObjectTy is handled as well: ```nim type Type = ref object context: ref object ``` Ref alias won't trigger mata fields checking so there won't have cascaded errors on `TypeBase`. ```nim type TypeBase = object context: ref object Type = ref TypeBase context: ref object ```
Diffstat (limited to 'tests/errmsgs')
-rw-r--r-- | tests/errmsgs/tmetaobjectfields.nim | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/tests/errmsgs/tmetaobjectfields.nim b/tests/errmsgs/tmetaobjectfields.nim index 837041512..47d3acf18 100644 --- a/tests/errmsgs/tmetaobjectfields.nim +++ b/tests/errmsgs/tmetaobjectfields.nim @@ -2,16 +2,18 @@ discard """ cmd: "nim check --hints:off $file" action: "reject" nimout: ''' -tmetaobjectfields.nim(24, 5) Error: 'array' is not a concrete type -tmetaobjectfields.nim(28, 5) Error: 'seq' is not a concrete type -tmetaobjectfields.nim(32, 5) Error: 'set' is not a concrete type -tmetaobjectfields.nim(35, 3) Error: 'sink' is not a concrete type -tmetaobjectfields.nim(37, 3) Error: 'lent' is not a concrete type -tmetaobjectfields.nim(54, 16) Error: 'seq' is not a concrete type -tmetaobjectfields.nim(58, 5) Error: 'ptr' is not a concrete type -tmetaobjectfields.nim(59, 5) Error: 'ref' is not a concrete type -tmetaobjectfields.nim(60, 5) Error: 'auto' is not a concrete type -tmetaobjectfields.nim(61, 5) Error: 'UncheckedArray' is not a concrete type +tmetaobjectfields.nim(26, 5) Error: 'array' is not a concrete type +tmetaobjectfields.nim(30, 5) Error: 'seq' is not a concrete type +tmetaobjectfields.nim(34, 5) Error: 'set' is not a concrete type +tmetaobjectfields.nim(37, 3) Error: 'sink' is not a concrete type +tmetaobjectfields.nim(39, 3) Error: 'lent' is not a concrete type +tmetaobjectfields.nim(56, 16) Error: 'seq' is not a concrete type +tmetaobjectfields.nim(60, 5) Error: 'ptr' is not a concrete type +tmetaobjectfields.nim(61, 5) Error: 'ref' is not a concrete type +tmetaobjectfields.nim(62, 5) Error: 'auto' is not a concrete type +tmetaobjectfields.nim(63, 5) Error: 'UncheckedArray' is not a concrete type +tmetaobjectfields.nim(68, 5) Error: 'object' is not a concrete type +tmetaobjectfields.nim(72, 5) Error: 'Type3011:ObjectType' is not a concrete type ''' """ @@ -59,3 +61,15 @@ type b: ref c: auto d: UncheckedArray + +# bug #3011 +type + Type3011 = ref object + context: ref object + +type + Value3011 = ref object + typ: Type3011 + +proc x3011(): Value3011 = + nil |