| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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.kernel.element_map; | 5 library dart2js.kernel.element_map; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' as ir; | 7 import 'package:kernel/ast.dart' as ir; |
| 8 import 'package:kernel/clone.dart'; | 8 import 'package:kernel/clone.dart'; |
| 9 import 'package:kernel/type_algebra.dart'; | 9 import 'package:kernel/type_algebra.dart'; |
| 10 | 10 |
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 _getTypeVariable(node.typeParameters[index])); | 473 _getTypeVariable(node.typeParameters[index])); |
| 474 })); | 474 })); |
| 475 env.rawType = new InterfaceType( | 475 env.rawType = new InterfaceType( |
| 476 cls, | 476 cls, |
| 477 new List/*<DartType>*/ .filled( | 477 new List/*<DartType>*/ .filled( |
| 478 node.typeParameters.length, const DynamicType())); | 478 node.typeParameters.length, const DynamicType())); |
| 479 } | 479 } |
| 480 } | 480 } |
| 481 } | 481 } |
| 482 | 482 |
| 483 InterfaceType _getThisType(KClass cls) { | 483 InterfaceType getThisType(KClass cls) { |
| 484 _KClassEnv env = _classEnvs[cls.classIndex]; | 484 _KClassEnv env = _classEnvs[cls.classIndex]; |
| 485 _ensureThisAndRawType(cls, env); | 485 _ensureThisAndRawType(cls, env); |
| 486 return env.thisType; | 486 return env.thisType; |
| 487 } | 487 } |
| 488 | 488 |
| 489 InterfaceType _getRawType(KClass cls) { | 489 InterfaceType _getRawType(KClass cls) { |
| 490 _KClassEnv env = _classEnvs[cls.classIndex]; | 490 _KClassEnv env = _classEnvs[cls.classIndex]; |
| 491 _ensureThisAndRawType(cls, env); | 491 _ensureThisAndRawType(cls, env); |
| 492 return env.rawType; | 492 return env.rawType; |
| 493 } | 493 } |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 551 } | 551 } |
| 552 | 552 |
| 553 ClassEntity _getAppliedMixin(KClass cls) { | 553 ClassEntity _getAppliedMixin(KClass cls) { |
| 554 _KClassEnv env = _classEnvs[cls.classIndex]; | 554 _KClassEnv env = _classEnvs[cls.classIndex]; |
| 555 _ensureSupertypes(cls, env); | 555 _ensureSupertypes(cls, env); |
| 556 return env.mixedInType?.element; | 556 return env.mixedInType?.element; |
| 557 } | 557 } |
| 558 | 558 |
| 559 DartType _substByContext(DartType type, InterfaceType context) { | 559 DartType _substByContext(DartType type, InterfaceType context) { |
| 560 return type.subst( | 560 return type.subst( |
| 561 context.typeArguments, _getThisType(context.element).typeArguments); | 561 context.typeArguments, getThisType(context.element).typeArguments); |
| 562 } | 562 } |
| 563 | 563 |
| 564 InterfaceType _getSuperType(KClass cls) { | 564 InterfaceType _getSuperType(KClass cls) { |
| 565 _KClassEnv env = _classEnvs[cls.classIndex]; | 565 _KClassEnv env = _classEnvs[cls.classIndex]; |
| 566 _ensureSupertypes(cls, env); | 566 _ensureSupertypes(cls, env); |
| 567 return env.supertype; | 567 return env.supertype; |
| 568 } | 568 } |
| 569 | 569 |
| 570 bool _isUnnamedMixinApplication(KClass cls) { | 570 bool _isUnnamedMixinApplication(KClass cls) { |
| 571 _KClassEnv env = _classEnvs[cls.classIndex]; | 571 _KClassEnv env = _classEnvs[cls.classIndex]; |
| (...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1101 LibraryEntity get mainLibrary => elementMap._mainLibrary; | 1101 LibraryEntity get mainLibrary => elementMap._mainLibrary; |
| 1102 | 1102 |
| 1103 @override | 1103 @override |
| 1104 FunctionEntity get mainFunction => elementMap._mainFunction; | 1104 FunctionEntity get mainFunction => elementMap._mainFunction; |
| 1105 | 1105 |
| 1106 @override | 1106 @override |
| 1107 Iterable<LibraryEntity> get libraries => elementMap._libraries; | 1107 Iterable<LibraryEntity> get libraries => elementMap._libraries; |
| 1108 | 1108 |
| 1109 @override | 1109 @override |
| 1110 InterfaceType getThisType(ClassEntity cls) { | 1110 InterfaceType getThisType(ClassEntity cls) { |
| 1111 return elementMap._getThisType(cls); | 1111 return elementMap.getThisType(cls); |
| 1112 } | 1112 } |
| 1113 | 1113 |
| 1114 @override | 1114 @override |
| 1115 InterfaceType getRawType(ClassEntity cls) { | 1115 InterfaceType getRawType(ClassEntity cls) { |
| 1116 return elementMap._getRawType(cls); | 1116 return elementMap._getRawType(cls); |
| 1117 } | 1117 } |
| 1118 | 1118 |
| 1119 @override | 1119 @override |
| 1120 bool isGenericClass(ClassEntity cls) { | 1120 bool isGenericClass(ClassEntity cls) { |
| 1121 return getThisType(cls).typeArguments.isNotEmpty; | 1121 return getThisType(cls).typeArguments.isNotEmpty; |
| (...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1553 return node.isExternal && | 1553 return node.isExternal && |
| 1554 !elementMap.isForeignLibrary(node.enclosingLibrary); | 1554 !elementMap.isForeignLibrary(node.enclosingLibrary); |
| 1555 } | 1555 } |
| 1556 | 1556 |
| 1557 @override | 1557 @override |
| 1558 bool isJsInteropMember(MemberEntity element) { | 1558 bool isJsInteropMember(MemberEntity element) { |
| 1559 // TODO(johnniwinther): Compute this. | 1559 // TODO(johnniwinther): Compute this. |
| 1560 return false; | 1560 return false; |
| 1561 } | 1561 } |
| 1562 } | 1562 } |
| OLD | NEW |