@@ -5,10 +5,7 @@ import (
55 "reflect"
66)
77
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
129
1310var (
1411 nilType = reflect .TypeOf (nil )
@@ -20,34 +17,34 @@ var (
2017 interfaceType = reflect .TypeOf (new (interface {})).Elem ()
2118)
2219
23- func (n nilNode ) Type (table typesTable ) (Type , error ) {
20+ func (n nilNode ) Type (table typesTable ) (reflect. Type , error ) {
2421 return nil , nil
2522}
2623
27- func (n identifierNode ) Type (table typesTable ) (Type , error ) {
24+ func (n identifierNode ) Type (table typesTable ) (reflect. Type , error ) {
2825 return textType , nil
2926}
3027
31- func (n numberNode ) Type (table typesTable ) (Type , error ) {
28+ func (n numberNode ) Type (table typesTable ) (reflect. Type , error ) {
3229 return numberType , nil
3330}
3431
35- func (n boolNode ) Type (table typesTable ) (Type , error ) {
32+ func (n boolNode ) Type (table typesTable ) (reflect. Type , error ) {
3633 return boolType , nil
3734}
3835
39- func (n textNode ) Type (table typesTable ) (Type , error ) {
36+ func (n textNode ) Type (table typesTable ) (reflect. Type , error ) {
4037 return textType , nil
4138}
4239
43- func (n nameNode ) Type (table typesTable ) (Type , error ) {
40+ func (n nameNode ) Type (table typesTable ) (reflect. Type , error ) {
4441 if t , ok := table [n .name ]; ok {
4542 return t , nil
4643 }
4744 return nil , fmt .Errorf ("unknown name %v" , n )
4845}
4946
50- func (n unaryNode ) Type (table typesTable ) (Type , error ) {
47+ func (n unaryNode ) Type (table typesTable ) (reflect. Type , error ) {
5148 ntype , err := n .node .Type (table )
5249 if err != nil {
5350 return nil , err
@@ -64,7 +61,7 @@ func (n unaryNode) Type(table typesTable) (Type, error) {
6461 return interfaceType , nil
6562}
6663
67- func (n binaryNode ) Type (table typesTable ) (Type , error ) {
64+ func (n binaryNode ) Type (table typesTable ) (reflect. Type , error ) {
6865 var err error
6966 ltype , err := n .left .Type (table )
7067 if err != nil {
@@ -126,7 +123,7 @@ func (n binaryNode) Type(table typesTable) (Type, error) {
126123 return interfaceType , nil
127124}
128125
129- func (n matchesNode ) Type (table typesTable ) (Type , error ) {
126+ func (n matchesNode ) Type (table typesTable ) (reflect. Type , error ) {
130127 var err error
131128 ltype , err := n .left .Type (table )
132129 if err != nil {
@@ -142,7 +139,7 @@ func (n matchesNode) Type(table typesTable) (Type, error) {
142139 return nil , fmt .Errorf (`invalid operation: %v (mismatched types %v and %v)` , n , ltype , rtype )
143140}
144141
145- func (n propertyNode ) Type (table typesTable ) (Type , error ) {
142+ func (n propertyNode ) Type (table typesTable ) (reflect. Type , error ) {
146143 ntype , err := n .node .Type (table )
147144 if err != nil {
148145 return nil , err
@@ -153,7 +150,7 @@ func (n propertyNode) Type(table typesTable) (Type, error) {
153150 return nil , fmt .Errorf ("%v undefined (type %v has no field %v)" , n , ntype , n .property )
154151}
155152
156- func (n indexNode ) Type (table typesTable ) (Type , error ) {
153+ func (n indexNode ) Type (table typesTable ) (reflect. Type , error ) {
157154 ntype , err := n .node .Type (table )
158155 if err != nil {
159156 return nil , err
@@ -168,7 +165,7 @@ func (n indexNode) Type(table typesTable) (Type, error) {
168165 return nil , fmt .Errorf ("invalid operation: %v (type %v does not support indexing)" , n , ntype )
169166}
170167
171- func (n methodNode ) Type (table typesTable ) (Type , error ) {
168+ func (n methodNode ) Type (table typesTable ) (reflect. Type , error ) {
172169 ntype , err := n .node .Type (table )
173170 if err != nil {
174171 return nil , err
@@ -188,7 +185,7 @@ func (n methodNode) Type(table typesTable) (Type, error) {
188185 return nil , fmt .Errorf ("%v undefined (type %v has no method %v)" , n , ntype , n .method )
189186}
190187
191- func (n builtinNode ) Type (table typesTable ) (Type , error ) {
188+ func (n builtinNode ) Type (table typesTable ) (reflect. Type , error ) {
192189 for _ , node := range n .arguments {
193190 _ , err := node .Type (table )
194191 if err != nil {
@@ -203,7 +200,7 @@ func (n builtinNode) Type(table typesTable) (Type, error) {
203200 return nil , fmt .Errorf ("%v undefined" , n )
204201}
205202
206- func (n functionNode ) Type (table typesTable ) (Type , error ) {
203+ func (n functionNode ) Type (table typesTable ) (reflect. Type , error ) {
207204 for _ , node := range n .arguments {
208205 _ , err := node .Type (table )
209206 if err != nil {
@@ -218,7 +215,7 @@ func (n functionNode) Type(table typesTable) (Type, error) {
218215 return nil , fmt .Errorf ("unknown func %v" , n )
219216}
220217
221- func (n conditionalNode ) Type (table typesTable ) (Type , error ) {
218+ func (n conditionalNode ) Type (table typesTable ) (reflect. Type , error ) {
222219 ctype , err := n .cond .Type (table )
223220 if err != nil {
224221 return nil , err
@@ -251,7 +248,7 @@ func (n conditionalNode) Type(table typesTable) (Type, error) {
251248 return interfaceType , nil
252249}
253250
254- func (n arrayNode ) Type (table typesTable ) (Type , error ) {
251+ func (n arrayNode ) Type (table typesTable ) (reflect. Type , error ) {
255252 for _ , node := range n .nodes {
256253 _ , err := node .Type (table )
257254 if err != nil {
@@ -261,7 +258,7 @@ func (n arrayNode) Type(table typesTable) (Type, error) {
261258 return arrayType , nil
262259}
263260
264- func (n mapNode ) Type (table typesTable ) (Type , error ) {
261+ func (n mapNode ) Type (table typesTable ) (reflect. Type , error ) {
265262 for _ , node := range n .pairs {
266263 _ , err := node .Type (table )
267264 if err != nil {
@@ -271,7 +268,7 @@ func (n mapNode) Type(table typesTable) (Type, error) {
271268 return mapType , nil
272269}
273270
274- func (n pairNode ) Type (table typesTable ) (Type , error ) {
271+ func (n pairNode ) Type (table typesTable ) (reflect. Type , error ) {
275272 var err error
276273 _ , err = n .key .Type (table )
277274 if err != nil {
@@ -286,7 +283,7 @@ func (n pairNode) Type(table typesTable) (Type, error) {
286283
287284// helper funcs for reflect
288285
289- func isComparable (l Type , r Type ) bool {
286+ func isComparable (l , r reflect. Type ) bool {
290287 l = dereference (l )
291288 r = dereference (r )
292289
@@ -306,7 +303,7 @@ func isComparable(l Type, r Type) bool {
306303 return false
307304}
308305
309- func isInterfaceType (t Type ) bool {
306+ func isInterfaceType (t reflect. Type ) bool {
310307 t = dereference (t )
311308 if t != nil {
312309 switch t .Kind () {
@@ -317,7 +314,7 @@ func isInterfaceType(t Type) bool {
317314 return false
318315}
319316
320- func isNumberType (t Type ) bool {
317+ func isNumberType (t reflect. Type ) bool {
321318 t = dereference (t )
322319 if t != nil {
323320 switch t .Kind () {
@@ -332,7 +329,7 @@ func isNumberType(t Type) bool {
332329 return false
333330}
334331
335- func isBoolType (t Type ) bool {
332+ func isBoolType (t reflect. Type ) bool {
336333 t = dereference (t )
337334 if t != nil {
338335 switch t .Kind () {
@@ -343,7 +340,7 @@ func isBoolType(t Type) bool {
343340 return false
344341}
345342
346- func isStringType (t Type ) bool {
343+ func isStringType (t reflect. Type ) bool {
347344 t = dereference (t )
348345 if t != nil {
349346 switch t .Kind () {
@@ -354,7 +351,7 @@ func isStringType(t Type) bool {
354351 return false
355352}
356353
357- func isArrayType (t Type ) bool {
354+ func isArrayType (t reflect. Type ) bool {
358355 t = dereference (t )
359356 if t != nil {
360357 switch t .Kind () {
@@ -365,7 +362,7 @@ func isArrayType(t Type) bool {
365362 return false
366363}
367364
368- func isMapType (t Type ) bool {
365+ func isMapType (t reflect. Type ) bool {
369366 t = dereference (t )
370367 if t != nil {
371368 switch t .Kind () {
@@ -376,7 +373,7 @@ func isMapType(t Type) bool {
376373 return false
377374}
378375
379- func isStructType (t Type ) bool {
376+ func isStructType (t reflect. Type ) bool {
380377 t = dereference (t )
381378 if t != nil {
382379 switch t .Kind () {
@@ -387,7 +384,7 @@ func isStructType(t Type) bool {
387384 return false
388385}
389386
390- func fieldType (ntype Type , name string ) (Type , bool ) {
387+ func fieldType (ntype reflect. Type , name string ) (reflect. Type , bool ) {
391388 ntype = dereference (ntype )
392389 if ntype != nil {
393390 switch ntype .Kind () {
@@ -419,7 +416,7 @@ func fieldType(ntype Type, name string) (Type, bool) {
419416 return nil , false
420417}
421418
422- func methodType (ntype Type , name string ) (Type , bool ) {
419+ func methodType (ntype reflect. Type , name string ) (reflect. Type , bool ) {
423420 ntype = dereference (ntype )
424421 if ntype != nil {
425422 switch ntype .Kind () {
@@ -459,7 +456,7 @@ func methodType(ntype Type, name string) (Type, bool) {
459456 return nil , false
460457}
461458
462- func indexType (ntype Type ) (Type , bool ) {
459+ func indexType (ntype reflect. Type ) (reflect. Type , bool ) {
463460 ntype = dereference (ntype )
464461 if ntype == nil {
465462 return nil , false
@@ -475,7 +472,7 @@ func indexType(ntype Type) (Type, bool) {
475472 return nil , false
476473}
477474
478- func funcType (ntype Type ) (Type , bool ) {
475+ func funcType (ntype reflect. Type ) (reflect. Type , bool ) {
479476 ntype = dereference (ntype )
480477 if ntype == nil {
481478 return nil , false
@@ -494,7 +491,7 @@ func funcType(ntype Type) (Type, bool) {
494491 return nil , false
495492}
496493
497- func dereference (ntype Type ) Type {
494+ func dereference (ntype reflect. Type ) reflect. Type {
498495 if ntype == nil {
499496 return nil
500497 }
0 commit comments