| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 dart2js.resolution.registry; | 5 library dart2js.resolution.registry; |
| 6 | 6 |
| 7 import '../common.dart'; | 7 import '../common.dart'; |
| 8 import '../common/backend_api.dart' show | 8 import '../common/backend_api.dart' show |
| 9 Backend, | 9 Backend, |
| 10 ForeignResolver; | 10 ForeignResolver; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 import '../elements/elements.dart'; | 24 import '../elements/elements.dart'; |
| 25 import '../tree/tree.dart'; | 25 import '../tree/tree.dart'; |
| 26 import '../util/util.dart' show | 26 import '../util/util.dart' show |
| 27 Setlet; | 27 Setlet; |
| 28 import '../universe/call_structure.dart' show | 28 import '../universe/call_structure.dart' show |
| 29 CallStructure; | 29 CallStructure; |
| 30 import '../universe/selector.dart' show | 30 import '../universe/selector.dart' show |
| 31 Selector; | 31 Selector; |
| 32 import '../universe/use.dart' show | 32 import '../universe/use.dart' show |
| 33 DynamicUse, | 33 DynamicUse, |
| 34 StaticUse; | 34 StaticUse, |
| 35 TypeUse; |
| 35 import '../universe/world_impact.dart' show | 36 import '../universe/world_impact.dart' show |
| 36 WorldImpactBuilder; | 37 WorldImpactBuilder; |
| 37 import '../world.dart' show World; | 38 import '../world.dart' show World; |
| 38 | 39 |
| 39 import 'send_structure.dart'; | 40 import 'send_structure.dart'; |
| 40 | 41 |
| 41 import 'members.dart' show | 42 import 'members.dart' show |
| 42 ResolverVisitor; | 43 ResolverVisitor; |
| 43 import 'tree_elements.dart' show | 44 import 'tree_elements.dart' show |
| 44 TreeElementMapping; | 45 TreeElementMapping; |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 } | 309 } |
| 309 | 310 |
| 310 void registerTypeVariableBoundCheck() { | 311 void registerTypeVariableBoundCheck() { |
| 311 worldImpact.registerFeature(Feature.TYPE_VARIABLE_BOUNDS_CHECK); | 312 worldImpact.registerFeature(Feature.TYPE_VARIABLE_BOUNDS_CHECK); |
| 312 } | 313 } |
| 313 | 314 |
| 314 void registerThrowNoSuchMethod() { | 315 void registerThrowNoSuchMethod() { |
| 315 worldImpact.registerFeature(Feature.THROW_NO_SUCH_METHOD); | 316 worldImpact.registerFeature(Feature.THROW_NO_SUCH_METHOD); |
| 316 } | 317 } |
| 317 | 318 |
| 318 /// Register a checked mode check against [type]. | 319 /// Register the use of a type. |
| 319 void registerCheckedModeCheck(DartType type) { | 320 void registerTypeUse(TypeUse typeUse) { |
| 320 worldImpact.registerCheckedModeCheckedType(type); | 321 worldImpact.registerTypeUse(typeUse); |
| 321 } | |
| 322 | |
| 323 /// Register an on-catch clause of [type]. | |
| 324 void registerOnCatchType(DartType type) { | |
| 325 worldImpact.registerOnCatchType(type); | |
| 326 } | |
| 327 | |
| 328 /// Register an is-test or is-not-test of [type]. | |
| 329 void registerIsCheck(DartType type) { | |
| 330 worldImpact.registerIsCheck(type); | |
| 331 } | |
| 332 | |
| 333 /// Register an as-cast of [type]. | |
| 334 void registerAsCast(DartType type) { | |
| 335 worldImpact.registerAsCast(type); | |
| 336 } | 322 } |
| 337 | 323 |
| 338 void registerClosure(LocalFunctionElement element) { | 324 void registerClosure(LocalFunctionElement element) { |
| 339 worldImpact.registerClosure(element); | 325 worldImpact.registerClosure(element); |
| 340 } | 326 } |
| 341 | 327 |
| 342 void registerSuperUse(Node node) { | 328 void registerSuperUse(Node node) { |
| 343 mapping.addSuperUse(node); | 329 mapping.addSuperUse(node); |
| 344 } | 330 } |
| 345 | 331 |
| 346 void registerSuperNoSuchMethod() { | 332 void registerSuperNoSuchMethod() { |
| 347 worldImpact.registerFeature(Feature.SUPER_NO_SUCH_METHOD); | 333 worldImpact.registerFeature(Feature.SUPER_NO_SUCH_METHOD); |
| 348 } | 334 } |
| 349 | 335 |
| 350 void registerTypeLiteral(Send node, DartType type) { | 336 void registerTypeLiteral(Send node, DartType type) { |
| 351 mapping.setType(node, type); | 337 mapping.setType(node, type); |
| 352 worldImpact.registerTypeLiteral(type); | 338 worldImpact.registerTypeUse(new TypeUse.typeLiteral(type)); |
| 353 } | 339 } |
| 354 | 340 |
| 355 void registerLiteralList(Node node, | 341 void registerLiteralList(Node node, |
| 356 InterfaceType type, | 342 InterfaceType type, |
| 357 {bool isConstant, | 343 {bool isConstant, |
| 358 bool isEmpty}) { | 344 bool isEmpty}) { |
| 359 setType(node, type); | 345 setType(node, type); |
| 360 worldImpact.registerListLiteral( | 346 worldImpact.registerListLiteral( |
| 361 new ListLiteralUse(type, isConstant: isConstant, isEmpty: isEmpty)); | 347 new ListLiteralUse(type, isConstant: isConstant, isEmpty: isEmpty)); |
| 362 } | 348 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 384 } | 370 } |
| 385 | 371 |
| 386 void registerConstSymbol(String name) { | 372 void registerConstSymbol(String name) { |
| 387 worldImpact.registerConstSymbolName(name); | 373 worldImpact.registerConstSymbolName(name); |
| 388 } | 374 } |
| 389 | 375 |
| 390 void registerSymbolConstructor() { | 376 void registerSymbolConstructor() { |
| 391 worldImpact.registerFeature(Feature.SYMBOL_CONSTRUCTOR); | 377 worldImpact.registerFeature(Feature.SYMBOL_CONSTRUCTOR); |
| 392 } | 378 } |
| 393 | 379 |
| 394 void registerInstantiatedType(InterfaceType type) { | |
| 395 worldImpact.registerInstantiatedType(type); | |
| 396 } | |
| 397 | |
| 398 void registerAbstractClassInstantiation() { | 380 void registerAbstractClassInstantiation() { |
| 399 worldImpact.registerFeature(Feature.ABSTRACT_CLASS_INSTANTIATION); | 381 worldImpact.registerFeature(Feature.ABSTRACT_CLASS_INSTANTIATION); |
| 400 } | 382 } |
| 401 | 383 |
| 402 void registerStringInterpolation() { | 384 void registerStringInterpolation() { |
| 403 worldImpact.registerFeature(Feature.STRING_INTERPOLATION); | 385 worldImpact.registerFeature(Feature.STRING_INTERPOLATION); |
| 404 } | 386 } |
| 405 | 387 |
| 406 void registerFallThroughError() { | 388 void registerFallThroughError() { |
| 407 worldImpact.registerFeature(Feature.FALL_THROUGH_ERROR); | 389 worldImpact.registerFeature(Feature.FALL_THROUGH_ERROR); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 426 void registerMixinUse(MixinApplicationElement mixinApplication, | 408 void registerMixinUse(MixinApplicationElement mixinApplication, |
| 427 ClassElement mixin) { | 409 ClassElement mixin) { |
| 428 universe.registerMixinUse(mixinApplication, mixin); | 410 universe.registerMixinUse(mixinApplication, mixin); |
| 429 } | 411 } |
| 430 | 412 |
| 431 void registerThrowExpression() { | 413 void registerThrowExpression() { |
| 432 worldImpact.registerFeature(Feature.THROW_EXPRESSION); | 414 worldImpact.registerFeature(Feature.THROW_EXPRESSION); |
| 433 } | 415 } |
| 434 | 416 |
| 435 void registerInstantiation(InterfaceType type) { | 417 void registerInstantiation(InterfaceType type) { |
| 436 registerInstantiatedType(type); | 418 worldImpact.registerTypeUse(new TypeUse.instantiation(type)); |
| 437 } | 419 } |
| 438 | 420 |
| 439 void registerAssert(bool hasMessage) { | 421 void registerAssert(bool hasMessage) { |
| 440 worldImpact.registerFeature( | 422 worldImpact.registerFeature( |
| 441 hasMessage ? Feature.ASSERT_WITH_MESSAGE : Feature.ASSERT); | 423 hasMessage ? Feature.ASSERT_WITH_MESSAGE : Feature.ASSERT); |
| 442 } | 424 } |
| 443 | 425 |
| 444 void registerSendStructure(Send node, SendStructure sendStructure) { | 426 void registerSendStructure(Send node, SendStructure sendStructure) { |
| 445 mapping.setSendStructure(node, sendStructure); | 427 mapping.setSendStructure(node, sendStructure); |
| 446 } | 428 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 | 468 |
| 487 ForeignResolutionResolver(this.visitor, this.registry); | 469 ForeignResolutionResolver(this.visitor, this.registry); |
| 488 | 470 |
| 489 @override | 471 @override |
| 490 ConstantExpression getConstant(Node node) { | 472 ConstantExpression getConstant(Node node) { |
| 491 return registry.getConstant(node); | 473 return registry.getConstant(node); |
| 492 } | 474 } |
| 493 | 475 |
| 494 @override | 476 @override |
| 495 void registerInstantiatedType(InterfaceType type) { | 477 void registerInstantiatedType(InterfaceType type) { |
| 496 registry.registerInstantiatedType(type); | 478 registry.registerInstantiation(type); |
| 497 } | 479 } |
| 498 | 480 |
| 499 @override | 481 @override |
| 500 DartType resolveTypeFromString(Node node, String typeName) { | 482 DartType resolveTypeFromString(Node node, String typeName) { |
| 501 return visitor.resolveTypeFromString(node, typeName); | 483 return visitor.resolveTypeFromString(node, typeName); |
| 502 } | 484 } |
| 503 } | 485 } |
| OLD | NEW |