summary refs log tree commit diff stats
path: root/tests/errmsgs
diff options
context:
space:
mode:
authorringabout <43030857+ringabout@users.noreply.github.com>2024-07-11 21:39:44 +0800
committerGitHub <noreply@github.com>2024-07-11 15:39:44 +0200
commit173b8a8c58cf649ccc1d2d048d8e2b1407f20d78 (patch)
treed005445299063279897f4ff744120cbceb23d5ec /tests/errmsgs
parent9092244f870434ff22f180f137a4a65e9995933b (diff)
downloadNim-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.nim34
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
ous revision' href='/ahoang/Nim/blame/compiler/condsyms.nim?h=devel&id=805959378dfa90b13819710c037930108e47d9a8'>^
e25474154 ^
740527813 ^
731c6f908 ^



dd806cafa ^
740527813 ^
89f9772f1 ^
731c6f908 ^

e25474154 ^
72e7a9854 ^
e25474154 ^
731c6f908 ^

e25474154 ^
a639824e5 ^
dd806cafa ^



b131439a2 ^
dd806cafa ^









710cbe3f1 ^
dd806cafa ^

22fb9db84 ^
dd806cafa ^







a9a5766c6 ^

dd806cafa ^

2df9b442c ^
731c6f908 ^
2df9b442c ^
5e15dec17 ^
2df9b442c ^





5506e8491 ^
b961e47bf ^
5e839d50b ^
a7911addf ^
dbf9117c5 ^
a639824e5 ^
3b7ef2288 ^

dd806cafa ^










e25474154 ^
2df9b442c ^


731c6f908 ^
e25474154 ^
438703f59 ^
2df9b442c ^
e25474154 ^
2df9b442c ^

438703f59 ^
d9c73b49d ^
e25474154 ^
2df9b442c ^

e25474154 ^
2df9b442c ^


438703f59 ^
2df9b442c ^


438703f59 ^
2df9b442c ^
438703f59 ^
2df9b442c ^

92b8fac94 ^
731c6f908 ^
92b8fac94 ^


b731e6ef1 ^
dd806cafa ^
5e5e4abfe ^
2df9b442c ^
cb6441e73 ^

f99c40f61 ^
cb6441e73 ^
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146