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 analyzer.src.dart.element.element; | 5 library analyzer.src.dart.element.element; |
6 | 6 |
7 import 'dart:collection'; | 7 import 'dart:collection'; |
8 import 'dart:math' show min; | 8 import 'dart:math' show min; |
9 | 9 |
10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 return true; | 765 return true; |
766 } | 766 } |
767 } | 767 } |
768 return false; | 768 return false; |
769 } | 769 } |
770 | 770 |
771 @override | 771 @override |
772 List<InterfaceType> get interfaces { | 772 List<InterfaceType> get interfaces { |
773 if (_interfaces == null) { | 773 if (_interfaces == null) { |
774 if (_kernel != null) { | 774 if (_kernel != null) { |
775 _interfaces = _kernel.implementedTypes | 775 var context = enclosingUnit._kernelContext; |
776 .map((k) => enclosingUnit._kernelContext.getInterfaceType(this, k)) | 776 _interfaces = context.getInterfaceTypes(this, _kernel.implementedTypes); |
777 .toList(growable: false); | |
778 } | 777 } |
779 if (_unlinkedClass != null) { | 778 if (_unlinkedClass != null) { |
780 ResynthesizerContext context = enclosingUnit.resynthesizerContext; | 779 ResynthesizerContext context = enclosingUnit.resynthesizerContext; |
781 _interfaces = _unlinkedClass.interfaces | 780 _interfaces = _unlinkedClass.interfaces |
782 .map((EntityRef t) => context.resolveTypeRef(this, t)) | 781 .map((EntityRef t) => context.resolveTypeRef(this, t)) |
783 .where(_isClassInterfaceType) | 782 .where(_isClassInterfaceType) |
784 .toList(growable: false); | 783 .toList(growable: false); |
785 } | 784 } |
786 } | 785 } |
787 return _interfaces ?? const <InterfaceType>[]; | 786 return _interfaces ?? const <InterfaceType>[]; |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
902 _assertNotResynthesized(_unlinkedClass); | 901 _assertNotResynthesized(_unlinkedClass); |
903 setModifier(Modifier.MIXIN_APPLICATION, isMixinApplication); | 902 setModifier(Modifier.MIXIN_APPLICATION, isMixinApplication); |
904 } | 903 } |
905 | 904 |
906 @override | 905 @override |
907 List<InterfaceType> get mixins { | 906 List<InterfaceType> get mixins { |
908 if (_mixins == null) { | 907 if (_mixins == null) { |
909 if (_kernel != null) { | 908 if (_kernel != null) { |
910 _initializeKernelMixins(); | 909 _initializeKernelMixins(); |
911 var context = enclosingUnit._kernelContext; | 910 var context = enclosingUnit._kernelContext; |
912 _mixins = _kernelMixins.map((k) { | 911 _mixins = context.getInterfaceTypes(this, _kernelMixins); |
913 return context.getInterfaceType(this, k); | |
914 }).toList(growable: false); | |
915 } | 912 } |
916 if (_unlinkedClass != null) { | 913 if (_unlinkedClass != null) { |
917 ResynthesizerContext context = enclosingUnit.resynthesizerContext; | 914 ResynthesizerContext context = enclosingUnit.resynthesizerContext; |
918 _mixins = _unlinkedClass.mixins | 915 _mixins = _unlinkedClass.mixins |
919 .map((EntityRef t) => context.resolveTypeRef(this, t)) | 916 .map((EntityRef t) => context.resolveTypeRef(this, t)) |
920 .where(_isClassInterfaceType) | 917 .where(_isClassInterfaceType) |
921 .toList(growable: false); | 918 .toList(growable: false); |
922 } | 919 } |
923 } | 920 } |
924 return _mixins ?? const <InterfaceType>[]; | 921 return _mixins ?? const <InterfaceType>[]; |
(...skipping 5265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6190 List<List<kernel.VariableDeclaration>> getFunctionTypeParameters( | 6187 List<List<kernel.VariableDeclaration>> getFunctionTypeParameters( |
6191 kernel.FunctionType functionType); | 6188 kernel.FunctionType functionType); |
6192 | 6189 |
6193 /** | 6190 /** |
6194 * Return the [InterfaceType] for the given Kernel [type], or `null` if the | 6191 * Return the [InterfaceType] for the given Kernel [type], or `null` if the |
6195 * [type] does not correspond to an [InterfaceType]. | 6192 * [type] does not correspond to an [InterfaceType]. |
6196 */ | 6193 */ |
6197 InterfaceType getInterfaceType(ElementImpl context, kernel.Supertype type); | 6194 InterfaceType getInterfaceType(ElementImpl context, kernel.Supertype type); |
6198 | 6195 |
6199 /** | 6196 /** |
| 6197 * Return the [InterfaceType]s for the given Kernel [types], skipping |
| 6198 * the elements that don't correspond to an [InterfaceType]. |
| 6199 */ |
| 6200 List<InterfaceType> getInterfaceTypes( |
| 6201 ElementImpl context, List<kernel.Supertype> types); |
| 6202 |
| 6203 /** |
6200 * Return the [ConstructorElementImpl] to which the given [kernelConstructor] | 6204 * Return the [ConstructorElementImpl] to which the given [kernelConstructor] |
6201 * or [kernelFactory] redirects. | 6205 * or [kernelFactory] redirects. |
6202 */ | 6206 */ |
6203 ConstructorElementImpl getRedirectedConstructor( | 6207 ConstructorElementImpl getRedirectedConstructor( |
6204 kernel.Constructor kernelConstructor, kernel.Procedure kernelFactory); | 6208 kernel.Constructor kernelConstructor, kernel.Procedure kernelFactory); |
6205 | 6209 |
6206 /** | 6210 /** |
6207 * Return the [DartType] for the given Kernel [type], or `null` if the [type] | 6211 * Return the [DartType] for the given Kernel [type], or `null` if the [type] |
6208 * does not correspond to a [DartType]. | 6212 * does not correspond to a [DartType]. |
6209 */ | 6213 */ |
(...skipping 3805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10015 | 10019 |
10016 @override | 10020 @override |
10017 DartObject computeConstantValue() => null; | 10021 DartObject computeConstantValue() => null; |
10018 | 10022 |
10019 @override | 10023 @override |
10020 void visitChildren(ElementVisitor visitor) { | 10024 void visitChildren(ElementVisitor visitor) { |
10021 super.visitChildren(visitor); | 10025 super.visitChildren(visitor); |
10022 _initializer?.accept(visitor); | 10026 _initializer?.accept(visitor); |
10023 } | 10027 } |
10024 } | 10028 } |
OLD | NEW |