(node *ast.PredicateNode)
| 1210 | } |
| 1211 | |
| 1212 | func (v *Checker) predicateNode(node *ast.PredicateNode) Nature { |
| 1213 | nt := v.visit(node.Node) |
| 1214 | var out []reflect.Type |
| 1215 | if nt.IsUnknown(&v.config.NtCache) { |
| 1216 | out = append(out, anyType) |
| 1217 | } else if !nt.Nil { |
| 1218 | out = append(out, nt.Type) |
| 1219 | } |
| 1220 | n := v.config.NtCache.FromType(reflect.FuncOf(anyTypeSlice, out, false)) |
| 1221 | n.Ref = &nt |
| 1222 | return n |
| 1223 | } |
| 1224 | |
| 1225 | func (v *Checker) pointerNode(node *ast.PointerNode) Nature { |
| 1226 | if len(v.predicateScopes) == 0 { |