@@ -5,10 +5,7 @@ import (
5
5
"reflect"
6
6
)
7
7
8
- // Type is a reflect.Type alias.
9
- type Type = reflect.Type
10
-
11
- type typesTable map [string ]Type
8
+ type typesTable map [string ]reflect.Type
12
9
13
10
var (
14
11
nilType = reflect .TypeOf (nil )
@@ -20,34 +17,34 @@ var (
20
17
interfaceType = reflect .TypeOf (new (interface {})).Elem ()
21
18
)
22
19
23
- func (n nilNode ) Type (table typesTable ) (Type , error ) {
20
+ func (n nilNode ) Type (table typesTable ) (reflect. Type , error ) {
24
21
return nil , nil
25
22
}
26
23
27
- func (n identifierNode ) Type (table typesTable ) (Type , error ) {
24
+ func (n identifierNode ) Type (table typesTable ) (reflect. Type , error ) {
28
25
return textType , nil
29
26
}
30
27
31
- func (n numberNode ) Type (table typesTable ) (Type , error ) {
28
+ func (n numberNode ) Type (table typesTable ) (reflect. Type , error ) {
32
29
return numberType , nil
33
30
}
34
31
35
- func (n boolNode ) Type (table typesTable ) (Type , error ) {
32
+ func (n boolNode ) Type (table typesTable ) (reflect. Type , error ) {
36
33
return boolType , nil
37
34
}
38
35
39
- func (n textNode ) Type (table typesTable ) (Type , error ) {
36
+ func (n textNode ) Type (table typesTable ) (reflect. Type , error ) {
40
37
return textType , nil
41
38
}
42
39
43
- func (n nameNode ) Type (table typesTable ) (Type , error ) {
40
+ func (n nameNode ) Type (table typesTable ) (reflect. Type , error ) {
44
41
if t , ok := table [n .name ]; ok {
45
42
return t , nil
46
43
}
47
44
return nil , fmt .Errorf ("unknown name %v" , n )
48
45
}
49
46
50
- func (n unaryNode ) Type (table typesTable ) (Type , error ) {
47
+ func (n unaryNode ) Type (table typesTable ) (reflect. Type , error ) {
51
48
ntype , err := n .node .Type (table )
52
49
if err != nil {
53
50
return nil , err
@@ -64,7 +61,7 @@ func (n unaryNode) Type(table typesTable) (Type, error) {
64
61
return interfaceType , nil
65
62
}
66
63
67
- func (n binaryNode ) Type (table typesTable ) (Type , error ) {
64
+ func (n binaryNode ) Type (table typesTable ) (reflect. Type , error ) {
68
65
var err error
69
66
ltype , err := n .left .Type (table )
70
67
if err != nil {
@@ -126,7 +123,7 @@ func (n binaryNode) Type(table typesTable) (Type, error) {
126
123
return interfaceType , nil
127
124
}
128
125
129
- func (n matchesNode ) Type (table typesTable ) (Type , error ) {
126
+ func (n matchesNode ) Type (table typesTable ) (reflect. Type , error ) {
130
127
var err error
131
128
ltype , err := n .left .Type (table )
132
129
if err != nil {
@@ -142,7 +139,7 @@ func (n matchesNode) Type(table typesTable) (Type, error) {
142
139
return nil , fmt .Errorf (`invalid operation: %v (mismatched types %v and %v)` , n , ltype , rtype )
143
140
}
144
141
145
- func (n propertyNode ) Type (table typesTable ) (Type , error ) {
142
+ func (n propertyNode ) Type (table typesTable ) (reflect. Type , error ) {
146
143
ntype , err := n .node .Type (table )
147
144
if err != nil {
148
145
return nil , err
@@ -153,7 +150,7 @@ func (n propertyNode) Type(table typesTable) (Type, error) {
153
150
return nil , fmt .Errorf ("%v undefined (type %v has no field %v)" , n , ntype , n .property )
154
151
}
155
152
156
- func (n indexNode ) Type (table typesTable ) (Type , error ) {
153
+ func (n indexNode ) Type (table typesTable ) (reflect. Type , error ) {
157
154
ntype , err := n .node .Type (table )
158
155
if err != nil {
159
156
return nil , err
@@ -168,7 +165,7 @@ func (n indexNode) Type(table typesTable) (Type, error) {
168
165
return nil , fmt .Errorf ("invalid operation: %v (type %v does not support indexing)" , n , ntype )
169
166
}
170
167
171
- func (n methodNode ) Type (table typesTable ) (Type , error ) {
168
+ func (n methodNode ) Type (table typesTable ) (reflect. Type , error ) {
172
169
ntype , err := n .node .Type (table )
173
170
if err != nil {
174
171
return nil , err
@@ -188,7 +185,7 @@ func (n methodNode) Type(table typesTable) (Type, error) {
188
185
return nil , fmt .Errorf ("%v undefined (type %v has no method %v)" , n , ntype , n .method )
189
186
}
190
187
191
- func (n builtinNode ) Type (table typesTable ) (Type , error ) {
188
+ func (n builtinNode ) Type (table typesTable ) (reflect. Type , error ) {
192
189
for _ , node := range n .arguments {
193
190
_ , err := node .Type (table )
194
191
if err != nil {
@@ -203,7 +200,7 @@ func (n builtinNode) Type(table typesTable) (Type, error) {
203
200
return nil , fmt .Errorf ("%v undefined" , n )
204
201
}
205
202
206
- func (n functionNode ) Type (table typesTable ) (Type , error ) {
203
+ func (n functionNode ) Type (table typesTable ) (reflect. Type , error ) {
207
204
for _ , node := range n .arguments {
208
205
_ , err := node .Type (table )
209
206
if err != nil {
@@ -218,7 +215,7 @@ func (n functionNode) Type(table typesTable) (Type, error) {
218
215
return nil , fmt .Errorf ("unknown func %v" , n )
219
216
}
220
217
221
- func (n conditionalNode ) Type (table typesTable ) (Type , error ) {
218
+ func (n conditionalNode ) Type (table typesTable ) (reflect. Type , error ) {
222
219
ctype , err := n .cond .Type (table )
223
220
if err != nil {
224
221
return nil , err
@@ -251,7 +248,7 @@ func (n conditionalNode) Type(table typesTable) (Type, error) {
251
248
return interfaceType , nil
252
249
}
253
250
254
- func (n arrayNode ) Type (table typesTable ) (Type , error ) {
251
+ func (n arrayNode ) Type (table typesTable ) (reflect. Type , error ) {
255
252
for _ , node := range n .nodes {
256
253
_ , err := node .Type (table )
257
254
if err != nil {
@@ -261,7 +258,7 @@ func (n arrayNode) Type(table typesTable) (Type, error) {
261
258
return arrayType , nil
262
259
}
263
260
264
- func (n mapNode ) Type (table typesTable ) (Type , error ) {
261
+ func (n mapNode ) Type (table typesTable ) (reflect. Type , error ) {
265
262
for _ , node := range n .pairs {
266
263
_ , err := node .Type (table )
267
264
if err != nil {
@@ -271,7 +268,7 @@ func (n mapNode) Type(table typesTable) (Type, error) {
271
268
return mapType , nil
272
269
}
273
270
274
- func (n pairNode ) Type (table typesTable ) (Type , error ) {
271
+ func (n pairNode ) Type (table typesTable ) (reflect. Type , error ) {
275
272
var err error
276
273
_ , err = n .key .Type (table )
277
274
if err != nil {
@@ -286,7 +283,7 @@ func (n pairNode) Type(table typesTable) (Type, error) {
286
283
287
284
// helper funcs for reflect
288
285
289
- func isComparable (l Type , r Type ) bool {
286
+ func isComparable (l , r reflect. Type ) bool {
290
287
l = dereference (l )
291
288
r = dereference (r )
292
289
@@ -306,7 +303,7 @@ func isComparable(l Type, r Type) bool {
306
303
return false
307
304
}
308
305
309
- func isInterfaceType (t Type ) bool {
306
+ func isInterfaceType (t reflect. Type ) bool {
310
307
t = dereference (t )
311
308
if t != nil {
312
309
switch t .Kind () {
@@ -317,7 +314,7 @@ func isInterfaceType(t Type) bool {
317
314
return false
318
315
}
319
316
320
- func isNumberType (t Type ) bool {
317
+ func isNumberType (t reflect. Type ) bool {
321
318
t = dereference (t )
322
319
if t != nil {
323
320
switch t .Kind () {
@@ -332,7 +329,7 @@ func isNumberType(t Type) bool {
332
329
return false
333
330
}
334
331
335
- func isBoolType (t Type ) bool {
332
+ func isBoolType (t reflect. Type ) bool {
336
333
t = dereference (t )
337
334
if t != nil {
338
335
switch t .Kind () {
@@ -343,7 +340,7 @@ func isBoolType(t Type) bool {
343
340
return false
344
341
}
345
342
346
- func isStringType (t Type ) bool {
343
+ func isStringType (t reflect. Type ) bool {
347
344
t = dereference (t )
348
345
if t != nil {
349
346
switch t .Kind () {
@@ -354,7 +351,7 @@ func isStringType(t Type) bool {
354
351
return false
355
352
}
356
353
357
- func isArrayType (t Type ) bool {
354
+ func isArrayType (t reflect. Type ) bool {
358
355
t = dereference (t )
359
356
if t != nil {
360
357
switch t .Kind () {
@@ -365,7 +362,7 @@ func isArrayType(t Type) bool {
365
362
return false
366
363
}
367
364
368
- func isMapType (t Type ) bool {
365
+ func isMapType (t reflect. Type ) bool {
369
366
t = dereference (t )
370
367
if t != nil {
371
368
switch t .Kind () {
@@ -376,7 +373,7 @@ func isMapType(t Type) bool {
376
373
return false
377
374
}
378
375
379
- func isStructType (t Type ) bool {
376
+ func isStructType (t reflect. Type ) bool {
380
377
t = dereference (t )
381
378
if t != nil {
382
379
switch t .Kind () {
@@ -387,7 +384,7 @@ func isStructType(t Type) bool {
387
384
return false
388
385
}
389
386
390
- func fieldType (ntype Type , name string ) (Type , bool ) {
387
+ func fieldType (ntype reflect. Type , name string ) (reflect. Type , bool ) {
391
388
ntype = dereference (ntype )
392
389
if ntype != nil {
393
390
switch ntype .Kind () {
@@ -419,7 +416,7 @@ func fieldType(ntype Type, name string) (Type, bool) {
419
416
return nil , false
420
417
}
421
418
422
- func methodType (ntype Type , name string ) (Type , bool ) {
419
+ func methodType (ntype reflect. Type , name string ) (reflect. Type , bool ) {
423
420
ntype = dereference (ntype )
424
421
if ntype != nil {
425
422
switch ntype .Kind () {
@@ -459,7 +456,7 @@ func methodType(ntype Type, name string) (Type, bool) {
459
456
return nil , false
460
457
}
461
458
462
- func indexType (ntype Type ) (Type , bool ) {
459
+ func indexType (ntype reflect. Type ) (reflect. Type , bool ) {
463
460
ntype = dereference (ntype )
464
461
if ntype == nil {
465
462
return nil , false
@@ -475,7 +472,7 @@ func indexType(ntype Type) (Type, bool) {
475
472
return nil , false
476
473
}
477
474
478
- func funcType (ntype Type ) (Type , bool ) {
475
+ func funcType (ntype reflect. Type ) (reflect. Type , bool ) {
479
476
ntype = dereference (ntype )
480
477
if ntype == nil {
481
478
return nil , false
@@ -494,7 +491,7 @@ func funcType(ntype Type) (Type, bool) {
494
491
return nil , false
495
492
}
496
493
497
- func dereference (ntype Type ) Type {
494
+ func dereference (ntype reflect. Type ) reflect. Type {
498
495
if ntype == nil {
499
496
return nil
500
497
}
0 commit comments