(node *ast.ArrayNode)
| 1313 | } |
| 1314 | |
| 1315 | func (v *Checker) arrayNode(node *ast.ArrayNode) Nature { |
| 1316 | var prev Nature |
| 1317 | allElementsAreSameType := true |
| 1318 | for i, node := range node.Nodes { |
| 1319 | curr := v.visit(node) |
| 1320 | if i > 0 { |
| 1321 | if curr.Kind != prev.Kind { |
| 1322 | allElementsAreSameType = false |
| 1323 | } |
| 1324 | } |
| 1325 | prev = curr |
| 1326 | } |
| 1327 | if allElementsAreSameType { |
| 1328 | return prev.MakeArrayOf(&v.config.NtCache) |
| 1329 | } |
| 1330 | return v.config.NtCache.FromType(arrayType) |
| 1331 | } |
| 1332 | |
| 1333 | func (v *Checker) mapNode(node *ast.MapNode) Nature { |
| 1334 | for _, pair := range node.Pairs { |
no test coverage detected