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 |