| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library related_types; | 5 library related_types; |
| 6 | 6 |
| 7 import 'package:compiler/src/commandline_options.dart'; | 7 import 'package:compiler/src/commandline_options.dart'; |
| 8 import 'package:compiler/src/compiler.dart'; | 8 import 'package:compiler/src/compiler.dart'; |
| 9 import 'package:compiler/src/core_types.dart'; | 9 import 'package:compiler/src/core_types.dart'; |
| 10 import 'package:compiler/src/elements/resolution_types.dart'; | 10 import 'package:compiler/src/elements/resolution_types.dart'; |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 | 255 |
| 256 ResolutionDartType apply(Node node, [_]) { | 256 ResolutionDartType apply(Node node, [_]) { |
| 257 ResolutionDartType type = node.accept(this); | 257 ResolutionDartType type = node.accept(this); |
| 258 if (type == null) { | 258 if (type == null) { |
| 259 type = const ResolutionDynamicType(); | 259 type = const ResolutionDynamicType(); |
| 260 } | 260 } |
| 261 return type; | 261 return type; |
| 262 } | 262 } |
| 263 | 263 |
| 264 @override | 264 @override |
| 265 ResolutionDartType visitEquals(Send node, Node left, Node right, _) { | 265 ResolutionInterfaceType visitEquals(Send node, Node left, Node right, _) { |
| 266 ResolutionDartType leftType = apply(left); | 266 ResolutionDartType leftType = apply(left); |
| 267 ResolutionDartType rightType = apply(right); | 267 ResolutionDartType rightType = apply(right); |
| 268 checkRelated(node, leftType, rightType); | 268 checkRelated(node, leftType, rightType); |
| 269 return commonElements.boolType; | 269 return commonElements.boolType; |
| 270 } | 270 } |
| 271 | 271 |
| 272 @override | 272 @override |
| 273 ResolutionDartType visitNotEquals(Send node, Node left, Node right, _) { | 273 ResolutionInterfaceType visitNotEquals(Send node, Node left, Node right, _) { |
| 274 ResolutionDartType leftType = apply(left); | 274 ResolutionDartType leftType = apply(left); |
| 275 ResolutionDartType rightType = apply(right); | 275 ResolutionDartType rightType = apply(right); |
| 276 checkRelated(node, leftType, rightType); | 276 checkRelated(node, leftType, rightType); |
| 277 return commonElements.boolType; | 277 return commonElements.boolType; |
| 278 } | 278 } |
| 279 | 279 |
| 280 @override | 280 @override |
| 281 ResolutionDartType visitIndex(Send node, Node receiver, Node index, _) { | 281 ResolutionDartType visitIndex(Send node, Node receiver, Node index, _) { |
| 282 ResolutionDartType receiverType = apply(receiver); | 282 ResolutionDartType receiverType = apply(receiver); |
| 283 ResolutionDartType indexType = apply(index); | 283 ResolutionDartType indexType = apply(index); |
| 284 ResolutionInterfaceType mapType = findMapType(receiverType); | 284 ResolutionInterfaceType mapType = findMapType(receiverType); |
| 285 ResolutionDartType keyType = findMapKeyType(mapType); | 285 ResolutionDartType keyType = findMapKeyType(mapType); |
| 286 ResolutionDartType valueType = findMapValueType(mapType); | 286 ResolutionDartType valueType = findMapValueType(mapType); |
| 287 checkRelated(index, keyType, indexType); | 287 checkRelated(index, keyType, indexType); |
| 288 return valueType; | 288 return valueType; |
| 289 } | 289 } |
| 290 | 290 |
| 291 @override | 291 @override |
| 292 ResolutionDartType visitLiteralInt(LiteralInt node) { | 292 ResolutionInterfaceType visitLiteralInt(LiteralInt node) { |
| 293 return commonElements.intType; | 293 return commonElements.intType; |
| 294 } | 294 } |
| 295 | 295 |
| 296 @override | 296 @override |
| 297 ResolutionDartType visitLiteralString(LiteralString node) { | 297 ResolutionInterfaceType visitLiteralString(LiteralString node) { |
| 298 return commonElements.stringType; | 298 return commonElements.stringType; |
| 299 } | 299 } |
| 300 | 300 |
| 301 @override | 301 @override |
| 302 ResolutionDartType visitLiteralBool(LiteralBool node) { | 302 ResolutionInterfaceType visitLiteralBool(LiteralBool node) { |
| 303 return commonElements.boolType; | 303 return commonElements.boolType; |
| 304 } | 304 } |
| 305 | 305 |
| 306 @override | 306 @override |
| 307 ResolutionDartType visitLiteralMap(LiteralMap node) { | 307 ResolutionDartType visitLiteralMap(LiteralMap node) { |
| 308 return elements.getType(node); | 308 return elements.getType(node); |
| 309 } | 309 } |
| 310 | 310 |
| 311 @override | 311 @override |
| 312 ResolutionDartType visitLiteralList(LiteralList node) { | 312 ResolutionDartType visitLiteralList(LiteralList node) { |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 ClassElement findClass(ResolutionDartType type) => type.accept(this, null); | 429 ClassElement findClass(ResolutionDartType type) => type.accept(this, null); |
| 430 | 430 |
| 431 @override | 431 @override |
| 432 ClassElement visitType(ResolutionDartType type, _) => null; | 432 ClassElement visitType(ResolutionDartType type, _) => null; |
| 433 | 433 |
| 434 @override | 434 @override |
| 435 ClassElement visitInterfaceType(ResolutionInterfaceType type, _) { | 435 ClassElement visitInterfaceType(ResolutionInterfaceType type, _) { |
| 436 return type.element; | 436 return type.element; |
| 437 } | 437 } |
| 438 } | 438 } |
| OLD | NEW |