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 /// Implementation of the element model used for deserialiation. | 5 /// Implementation of the element model used for deserialiation. |
6 /// | 6 /// |
7 /// These classes are created by [ElementDeserializer] triggered by the | 7 /// These classes are created by [ElementDeserializer] triggered by the |
8 /// [Deserializer]. | 8 /// [Deserializer]. |
9 | 9 |
10 library dart2js.serialization.modelz; | 10 library dart2js.serialization.modelz; |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 } | 269 } |
270 | 270 |
271 abstract class AnalyzableElementMixin implements AnalyzableElement, ElementZ { | 271 abstract class AnalyzableElementMixin implements AnalyzableElement, ElementZ { |
272 @override | 272 @override |
273 bool get hasTreeElements => _unsupported('hasTreeElements'); | 273 bool get hasTreeElements => _unsupported('hasTreeElements'); |
274 | 274 |
275 @override | 275 @override |
276 TreeElements get treeElements => _unsupported('treeElements'); | 276 TreeElements get treeElements => _unsupported('treeElements'); |
277 } | 277 } |
278 | 278 |
279 abstract class AstElementMixinZ implements AstElement, ElementZ { | 279 abstract class AstElementMixinZ<N extends Node> |
| 280 implements AstElement, ElementZ { |
280 ResolvedAst _resolvedAst; | 281 ResolvedAst _resolvedAst; |
281 | 282 |
282 // TODO(johnniwinther): This is needed for the token invariant assertion. Find | 283 // TODO(johnniwinther): This is needed for the token invariant assertion. Find |
283 // another way to bypass the test for modelz. | 284 // another way to bypass the test for modelz. |
284 @override | 285 @override |
285 bool get hasNode => false; | 286 bool get hasNode => false; |
286 | 287 |
287 @override | 288 @override |
288 bool get hasResolvedAst => _resolvedAst != null; | 289 bool get hasResolvedAst => _resolvedAst != null; |
289 | 290 |
290 @override | 291 @override |
291 get node => _unsupported('node'); | 292 N get node => _unsupported('node'); |
292 | 293 |
293 @override | 294 @override |
294 ResolvedAst get resolvedAst { | 295 ResolvedAst get resolvedAst { |
295 assert(_resolvedAst != null, | 296 assert(_resolvedAst != null, |
296 failedAt(this, "ResolvedAst has not been set for $this.")); | 297 failedAt(this, "ResolvedAst has not been set for $this.")); |
297 return _resolvedAst; | 298 return _resolvedAst; |
298 } | 299 } |
299 | 300 |
300 void set resolvedAst(ResolvedAst value) { | 301 void set resolvedAst(ResolvedAst value) { |
301 assert(_resolvedAst == null, | 302 assert(_resolvedAst == null, |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 @override | 393 @override |
393 bool get isInstanceMember => _canonicalElement.isInstanceMember; | 394 bool get isInstanceMember => _canonicalElement.isInstanceMember; |
394 | 395 |
395 @override | 396 @override |
396 bool get isStatic => _canonicalElement.isStatic; | 397 bool get isStatic => _canonicalElement.isStatic; |
397 | 398 |
398 @override | 399 @override |
399 bool get isTopLevel => _canonicalElement.isTopLevel; | 400 bool get isTopLevel => _canonicalElement.isTopLevel; |
400 } | 401 } |
401 | 402 |
| 403 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
402 class LibraryElementZ extends DeserializedElementZ | 404 class LibraryElementZ extends DeserializedElementZ |
403 with AnalyzableElementMixin, ContainerMixin, LibraryElementCommon | 405 with AnalyzableElementMixin, ContainerMixin, LibraryElementCommon |
404 implements LibraryElement { | 406 implements LibraryElement { |
405 Uri _canonicalUri; | 407 Uri _canonicalUri; |
406 CompilationUnitElement _entryCompilationUnit; | 408 CompilationUnitElement _entryCompilationUnit; |
407 Link<CompilationUnitElement> _compilationUnits; | 409 Link<CompilationUnitElement> _compilationUnits; |
408 List<ImportElement> _imports; | 410 List<ImportElement> _imports; |
409 List<ExportElement> _exports; | 411 List<ExportElement> _exports; |
410 ListedContainer _exportsMap; | 412 ListedContainer _exportsMap; |
411 ListedContainer _importsMap; | 413 ListedContainer _importsMap; |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
753 @override | 755 @override |
754 bool get isTopLevel => false; | 756 bool get isTopLevel => false; |
755 | 757 |
756 @override | 758 @override |
757 bool get isStatic => true; | 759 bool get isStatic => true; |
758 | 760 |
759 @override | 761 @override |
760 bool get isClassMember => true; | 762 bool get isClassMember => true; |
761 } | 763 } |
762 | 764 |
763 abstract class TypedElementMixin implements DeserializedElementZ, TypedElement { | 765 abstract class TypedElementMixin<T extends ResolutionDartType> |
764 ResolutionDartType _type; | 766 implements DeserializedElementZ, TypedElement { |
| 767 T _type; |
765 | 768 |
766 @override | 769 @override |
767 ResolutionDartType get type { | 770 T get type { |
768 if (_type == null) { | 771 if (_type == null) { |
769 _type = _decoder.getType(Key.TYPE); | 772 _type = _decoder.getType(Key.TYPE); |
770 } | 773 } |
771 return _type; | 774 return _type; |
772 } | 775 } |
773 | 776 |
774 @override | 777 @override |
775 ResolutionDartType computeType(Resolution resolution) => type; | 778 T computeType(Resolution resolution) => type; |
776 } | 779 } |
777 | 780 |
778 abstract class ParametersMixin | 781 abstract class ParametersMixin |
779 implements DeserializedElementZ, FunctionTypedElement { | 782 implements DeserializedElementZ, FunctionTypedElement { |
780 FunctionSignature _functionSignature; | 783 FunctionSignature _functionSignature; |
781 List<ParameterElement> _parameters; | 784 List<ParameterElement> _parameters; |
782 | 785 |
783 bool get hasFunctionSignature => true; | 786 bool get hasFunctionSignature => true; |
784 | 787 |
785 @override | 788 @override |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
914 _isResolved = true; | 917 _isResolved = true; |
915 // TODO(johnniwinther): Avoid eager computation of all members. `call` is | 918 // TODO(johnniwinther): Avoid eager computation of all members. `call` is |
916 // always needed, but the remaining should be computed on-demand or on | 919 // always needed, but the remaining should be computed on-demand or on |
917 // type instantiation. | 920 // type instantiation. |
918 class_members.MembersCreator.computeAllClassMembers(resolution, this); | 921 class_members.MembersCreator.computeAllClassMembers(resolution, this); |
919 resolution.registerClass(this); | 922 resolution.registerClass(this); |
920 } | 923 } |
921 } | 924 } |
922 } | 925 } |
923 | 926 |
| 927 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
924 class ClassElementZ extends DeserializedElementZ | 928 class ClassElementZ extends DeserializedElementZ |
925 with | 929 with |
926 AnalyzableElementMixin, | 930 AnalyzableElementMixin, |
927 AstElementMixinZ, | 931 AstElementMixinZ, |
928 ClassElementCommon, | 932 ClassElementCommon, |
929 class_members.ClassMemberMixin, | 933 class_members.ClassMemberMixin, |
930 ContainerMixin, | 934 ContainerMixin, |
931 LibraryMemberMixin, | 935 LibraryMemberMixin, |
932 TypeDeclarationMixin<ResolutionInterfaceType>, | 936 TypeDeclarationMixin, |
933 ClassElementMixin | 937 ClassElementMixin |
934 implements ClassElement { | 938 implements ClassElement { |
935 bool _isObject; | 939 bool _isObject; |
936 ResolutionInterfaceType _supertype; | 940 ResolutionInterfaceType _supertype; |
937 OrderedTypeSet _allSupertypesAndSelf; | 941 OrderedTypeSet _allSupertypesAndSelf; |
938 Link<ResolutionDartType> _interfaces; | 942 Link<ResolutionDartType> _interfaces; |
939 ResolutionFunctionType _callType; | 943 ResolutionFunctionType _callType; |
940 | 944 |
941 ClassElementZ(ObjectDecoder decoder) : super(decoder); | 945 ClassElementZ(ObjectDecoder decoder) : super(decoder); |
942 | 946 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1013 | 1017 |
1014 @override | 1018 @override |
1015 bool get isUnnamedMixinApplication => false; | 1019 bool get isUnnamedMixinApplication => false; |
1016 | 1020 |
1017 @override | 1021 @override |
1018 ResolutionFunctionType get callType { | 1022 ResolutionFunctionType get callType { |
1019 _ensureSuperHierarchy(); | 1023 _ensureSuperHierarchy(); |
1020 // TODO(johnniwinther): Why can't this always be computed in ensureResolved? | 1024 // TODO(johnniwinther): Why can't this always be computed in ensureResolved? |
1021 return _callType; | 1025 return _callType; |
1022 } | 1026 } |
| 1027 |
| 1028 ResolutionInterfaceType get thisType => super.thisType; |
| 1029 |
| 1030 ResolutionInterfaceType get rawType => super.rawType; |
1023 } | 1031 } |
1024 | 1032 |
1025 abstract class MixinApplicationElementMixin | 1033 abstract class MixinApplicationElementMixin |
1026 implements ElementZ, MixinApplicationElement { | 1034 implements ElementZ, MixinApplicationElement { |
1027 @override | 1035 @override |
1028 bool get isMixinApplication => true; | 1036 bool get isMixinApplication => true; |
1029 | 1037 |
1030 @override | 1038 @override |
1031 ClassElement get mixin => mixinType.element; | 1039 ClassElement get mixin => mixinType.element; |
1032 } | 1040 } |
(...skipping 11 matching lines...) Expand all Loading... |
1044 | 1052 |
1045 @override | 1053 @override |
1046 ClassElement get subclass => null; | 1054 ClassElement get subclass => null; |
1047 } | 1055 } |
1048 | 1056 |
1049 class UnnamedMixinApplicationElementZ extends ElementZ | 1057 class UnnamedMixinApplicationElementZ extends ElementZ |
1050 with | 1058 with |
1051 ClassElementCommon, | 1059 ClassElementCommon, |
1052 ClassElementMixin, | 1060 ClassElementMixin, |
1053 class_members.ClassMemberMixin, | 1061 class_members.ClassMemberMixin, |
1054 TypeDeclarationMixin<ResolutionInterfaceType>, | 1062 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_MIXIN |
| 1063 TypeDeclarationMixin, |
1055 AnalyzableElementMixin, | 1064 AnalyzableElementMixin, |
1056 AstElementMixinZ, | 1065 AstElementMixinZ, |
1057 MixinApplicationElementCommon, | 1066 MixinApplicationElementCommon, |
1058 MixinApplicationElementMixin { | 1067 MixinApplicationElementMixin { |
1059 final String name; | 1068 final String name; |
1060 final ClassElement subclass; | 1069 final ClassElement subclass; |
1061 final ResolutionInterfaceType _supertypeBase; | 1070 final ResolutionInterfaceType _supertypeBase; |
1062 final ResolutionInterfaceType _mixinBase; | 1071 final ResolutionInterfaceType _mixinBase; |
1063 ResolutionInterfaceType _supertype; | 1072 ResolutionInterfaceType _supertype; |
1064 Link<ResolutionDartType> _interfaces; | 1073 Link<ResolutionDartType> _interfaces; |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1195 @override | 1204 @override |
1196 ResolutionInterfaceType get mixinType => interfaces.head; | 1205 ResolutionInterfaceType get mixinType => interfaces.head; |
1197 | 1206 |
1198 @override | 1207 @override |
1199 int get sourceOffset => subclass.sourceOffset; | 1208 int get sourceOffset => subclass.sourceOffset; |
1200 | 1209 |
1201 @override | 1210 @override |
1202 SourceSpan get sourcePosition => subclass.sourcePosition; | 1211 SourceSpan get sourcePosition => subclass.sourcePosition; |
1203 } | 1212 } |
1204 | 1213 |
| 1214 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
1205 class EnumClassElementZ extends ClassElementZ implements EnumClassElement { | 1215 class EnumClassElementZ extends ClassElementZ implements EnumClassElement { |
1206 List<FieldElement> _enumValues; | 1216 List<FieldElement> _enumValues; |
1207 | 1217 |
1208 EnumClassElementZ(ObjectDecoder decoder) : super(decoder); | 1218 EnumClassElementZ(ObjectDecoder decoder) : super(decoder); |
1209 | 1219 |
1210 @override | 1220 @override |
1211 bool get isEnumClass => true; | 1221 bool get isEnumClass => true; |
1212 | 1222 |
1213 @override | 1223 @override |
1214 List<FieldElement> get enumValues { | 1224 List<EnumConstantElement> get enumValues { |
1215 if (_enumValues == null) { | 1225 if (_enumValues == null) { |
1216 _enumValues = _decoder.getElements(Key.FIELDS); | 1226 _enumValues = _decoder.getElements(Key.FIELDS); |
1217 } | 1227 } |
1218 return _enumValues; | 1228 return _enumValues; |
1219 } | 1229 } |
1220 } | 1230 } |
1221 | 1231 |
| 1232 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
1222 abstract class ConstructorElementZ extends DeserializedElementZ | 1233 abstract class ConstructorElementZ extends DeserializedElementZ |
1223 with | 1234 with |
1224 AnalyzableElementMixin, | 1235 AnalyzableElementMixin, |
1225 AstElementMixinZ, | 1236 AstElementMixinZ<FunctionExpression>, |
1226 ClassMemberMixin, | 1237 ClassMemberMixin, |
1227 FunctionTypedElementMixin, | 1238 FunctionTypedElementMixin, |
1228 ParametersMixin, | 1239 ParametersMixin, |
1229 TypedElementMixin, | 1240 TypedElementMixin<ResolutionFunctionType>, |
1230 MemberElementMixin, | 1241 MemberElementMixin, |
1231 ConstructorElementCommon | 1242 ConstructorElementCommon |
1232 implements | 1243 implements |
1233 ConstructorElement, | 1244 ConstructorElement, |
1234 // TODO(johnniwinther): Sort out whether a constructor is a method. | 1245 // TODO(johnniwinther): Sort out whether a constructor is a method. |
1235 MethodElement { | 1246 MethodElement { |
1236 ConstantConstructor _constantConstructor; | 1247 ConstantConstructor _constantConstructor; |
1237 ConstructorElement _effectiveTarget; | 1248 ConstructorElement _effectiveTarget; |
1238 | 1249 |
1239 ConstructorElementZ(ObjectDecoder decoder) : super(decoder); | 1250 ConstructorElementZ(ObjectDecoder decoder) : super(decoder); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1299 @override | 1310 @override |
1300 bool get isRedirectingFactory => false; | 1311 bool get isRedirectingFactory => false; |
1301 | 1312 |
1302 @override | 1313 @override |
1303 bool get isRedirectingGenerative => false; | 1314 bool get isRedirectingGenerative => false; |
1304 | 1315 |
1305 @override | 1316 @override |
1306 PrefixElement get redirectionDeferredPrefix => null; | 1317 PrefixElement get redirectionDeferredPrefix => null; |
1307 | 1318 |
1308 @override | 1319 @override |
1309 ResolutionInterfaceType computeEffectiveTargetType( | 1320 ResolutionDartType computeEffectiveTargetType( |
1310 ResolutionInterfaceType newType) => | 1321 ResolutionInterfaceType newType) => |
1311 newType; | 1322 newType; |
1312 } | 1323 } |
1313 | 1324 |
1314 class GenerativeConstructorElementZ extends ConstructorElementZ { | 1325 class GenerativeConstructorElementZ extends ConstructorElementZ { |
1315 GenerativeConstructorElementZ(ObjectDecoder decoder) : super(decoder); | 1326 GenerativeConstructorElementZ(ObjectDecoder decoder) : super(decoder); |
1316 | 1327 |
1317 @override | 1328 @override |
1318 ElementKind get kind => ElementKind.GENERATIVE_CONSTRUCTOR; | 1329 ElementKind get kind => ElementKind.GENERATIVE_CONSTRUCTOR; |
1319 | 1330 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1409 return _immediateRedirectionTarget; | 1420 return _immediateRedirectionTarget; |
1410 } | 1421 } |
1411 | 1422 |
1412 @override | 1423 @override |
1413 PrefixElement get redirectionDeferredPrefix { | 1424 PrefixElement get redirectionDeferredPrefix { |
1414 _ensureRedirection(); | 1425 _ensureRedirection(); |
1415 return _redirectionDeferredPrefix; | 1426 return _redirectionDeferredPrefix; |
1416 } | 1427 } |
1417 } | 1428 } |
1418 | 1429 |
| 1430 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
1419 class ForwardingConstructorElementZ extends ElementZ | 1431 class ForwardingConstructorElementZ extends ElementZ |
1420 with | 1432 with |
1421 AnalyzableElementMixin, | 1433 AnalyzableElementMixin, |
1422 AstElementMixinZ | 1434 AstElementMixinZ<FunctionExpression> |
1423 implements | 1435 implements |
1424 ConstructorElement, | 1436 ConstructorElement, |
1425 // TODO(johnniwinther): Sort out whether a constructor is a method. | 1437 // TODO(johnniwinther): Sort out whether a constructor is a method. |
1426 MethodElement { | 1438 MethodElement { |
1427 final MixinApplicationElement enclosingClass; | 1439 final MixinApplicationElement enclosingClass; |
1428 final ConstructorElement definingConstructor; | 1440 final ConstructorElement definingConstructor; |
1429 | 1441 |
1430 ForwardingConstructorElementZ(this.enclosingClass, this.definingConstructor); | 1442 ForwardingConstructorElementZ(this.enclosingClass, this.definingConstructor); |
1431 | 1443 |
1432 @override | 1444 @override |
1433 CompilationUnitElement get compilationUnit => enclosingClass.compilationUnit; | 1445 CompilationUnitElement get compilationUnit => enclosingClass.compilationUnit; |
1434 | 1446 |
1435 @override | 1447 @override |
1436 accept(ElementVisitor visitor, arg) { | 1448 accept(ElementVisitor visitor, arg) { |
1437 return visitor.visitConstructorElement(this, arg); | 1449 return visitor.visitConstructorElement(this, arg); |
1438 } | 1450 } |
1439 | 1451 |
1440 @override | 1452 @override |
1441 AsyncMarker get asyncMarker => AsyncMarker.SYNC; | 1453 AsyncMarker get asyncMarker => AsyncMarker.SYNC; |
1442 | 1454 |
1443 @override | 1455 @override |
1444 ResolutionInterfaceType computeEffectiveTargetType( | 1456 ResolutionDartType computeEffectiveTargetType( |
1445 ResolutionInterfaceType newType) { | 1457 ResolutionInterfaceType newType) { |
1446 return enclosingClass.thisType.substByContext(newType); | 1458 return enclosingClass.thisType.substByContext(newType); |
1447 } | 1459 } |
1448 | 1460 |
1449 @override | 1461 @override |
1450 ResolutionDartType computeType(Resolution resolution) => type; | 1462 ResolutionDartType computeType(Resolution resolution) => type; |
1451 | 1463 |
1452 @override | 1464 @override |
1453 bool get isConst => false; | 1465 bool get isConst => false; |
1454 | 1466 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1576 @override | 1588 @override |
1577 Name get memberName => new Name(name, library); | 1589 Name get memberName => new Name(name, library); |
1578 | 1590 |
1579 @override | 1591 @override |
1580 bool get isInjected => _decoder.getBool(Key.IS_INJECTED); | 1592 bool get isInjected => _decoder.getBool(Key.IS_INJECTED); |
1581 } | 1593 } |
1582 | 1594 |
1583 abstract class FieldElementZ extends DeserializedElementZ | 1595 abstract class FieldElementZ extends DeserializedElementZ |
1584 with | 1596 with |
1585 AnalyzableElementMixin, | 1597 AnalyzableElementMixin, |
1586 AstElementMixinZ, | 1598 AstElementMixinZ<VariableDefinitions>, |
1587 TypedElementMixin, | 1599 TypedElementMixin, |
1588 MemberElementMixin | 1600 MemberElementMixin |
1589 implements FieldElement { | 1601 implements FieldElement { |
1590 bool _isConst; | 1602 bool _isConst; |
1591 ConstantExpression _constant; | 1603 ConstantExpression _constant; |
1592 | 1604 |
1593 FieldElementZ(ObjectDecoder decoder) : super(decoder); | 1605 FieldElementZ(ObjectDecoder decoder) : super(decoder); |
1594 | 1606 |
1595 @override | 1607 @override |
1596 ElementKind get kind => ElementKind.FIELD; | 1608 ElementKind get kind => ElementKind.FIELD; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1631 | 1643 |
1632 class TopLevelFieldElementZ extends FieldElementZ with LibraryMemberMixin { | 1644 class TopLevelFieldElementZ extends FieldElementZ with LibraryMemberMixin { |
1633 TopLevelFieldElementZ(ObjectDecoder decoder) : super(decoder); | 1645 TopLevelFieldElementZ(ObjectDecoder decoder) : super(decoder); |
1634 } | 1646 } |
1635 | 1647 |
1636 class StaticFieldElementZ extends FieldElementZ | 1648 class StaticFieldElementZ extends FieldElementZ |
1637 with ClassMemberMixin, StaticMemberMixin { | 1649 with ClassMemberMixin, StaticMemberMixin { |
1638 StaticFieldElementZ(ObjectDecoder decoder) : super(decoder); | 1650 StaticFieldElementZ(ObjectDecoder decoder) : super(decoder); |
1639 } | 1651 } |
1640 | 1652 |
| 1653 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
1641 class EnumConstantElementZ extends StaticFieldElementZ | 1654 class EnumConstantElementZ extends StaticFieldElementZ |
1642 implements EnumConstantElement { | 1655 implements EnumConstantElement { |
1643 EnumConstantElementZ(ObjectDecoder decoder) : super(decoder); | 1656 EnumConstantElementZ(ObjectDecoder decoder) : super(decoder); |
1644 | 1657 |
1645 int get index => _decoder.getInt(Key.INDEX); | 1658 int get index => _decoder.getInt(Key.INDEX); |
1646 } | 1659 } |
1647 | 1660 |
1648 class InstanceFieldElementZ extends FieldElementZ | 1661 class InstanceFieldElementZ extends FieldElementZ |
1649 with ClassMemberMixin, InstanceMemberMixin { | 1662 with ClassMemberMixin, InstanceMemberMixin { |
1650 InstanceFieldElementZ(ObjectDecoder decoder) : super(decoder); | 1663 InstanceFieldElementZ(ObjectDecoder decoder) : super(decoder); |
1651 } | 1664 } |
1652 | 1665 |
| 1666 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
1653 abstract class FunctionElementZ extends DeserializedElementZ | 1667 abstract class FunctionElementZ extends DeserializedElementZ |
1654 with | 1668 with |
1655 AnalyzableElementMixin, | 1669 AnalyzableElementMixin, |
1656 AstElementMixinZ, | 1670 AstElementMixinZ<FunctionExpression>, |
1657 ParametersMixin, | 1671 ParametersMixin, |
1658 FunctionTypedElementMixin, | 1672 FunctionTypedElementMixin, |
1659 TypedElementMixin, | 1673 TypedElementMixin<ResolutionFunctionType>, |
1660 MemberElementMixin | 1674 MemberElementMixin |
1661 implements MethodElement { | 1675 implements MethodElement { |
1662 FunctionElementZ(ObjectDecoder decoder) : super(decoder); | 1676 FunctionElementZ(ObjectDecoder decoder) : super(decoder); |
1663 | 1677 |
1664 @override | 1678 @override |
1665 ElementKind get kind => ElementKind.FUNCTION; | 1679 ElementKind get kind => ElementKind.FUNCTION; |
1666 | 1680 |
1667 @override | 1681 @override |
1668 accept(ElementVisitor visitor, arg) { | 1682 accept(ElementVisitor visitor, arg) { |
1669 return visitor.visitMethodElement(this, arg); | 1683 return visitor.visitMethodElement(this, arg); |
(...skipping 27 matching lines...) Expand all Loading... |
1697 } | 1711 } |
1698 | 1712 |
1699 abstract class LocalExecutableMixin | 1713 abstract class LocalExecutableMixin |
1700 implements DeserializedElementZ, ExecutableElement, LocalElement { | 1714 implements DeserializedElementZ, ExecutableElement, LocalElement { |
1701 ExecutableElement _executableContext; | 1715 ExecutableElement _executableContext; |
1702 | 1716 |
1703 @override | 1717 @override |
1704 Element get enclosingElement => executableContext; | 1718 Element get enclosingElement => executableContext; |
1705 | 1719 |
1706 @override | 1720 @override |
1707 Element get enclosingClass => memberContext.enclosingClass; | 1721 ClassElementZ get enclosingClass => memberContext.enclosingClass; |
1708 | 1722 |
1709 @override | 1723 @override |
1710 ExecutableElement get executableContext { | 1724 ExecutableElement get executableContext { |
1711 if (_executableContext == null) { | 1725 if (_executableContext == null) { |
1712 _executableContext = _decoder.getElement(Key.EXECUTABLE_CONTEXT); | 1726 _executableContext = _decoder.getElement(Key.EXECUTABLE_CONTEXT); |
1713 } | 1727 } |
1714 return _executableContext; | 1728 return _executableContext; |
1715 } | 1729 } |
1716 | 1730 |
1717 @override | 1731 @override |
(...skipping 10 matching lines...) Expand all Loading... |
1728 return memberContext.compilationUnit; | 1742 return memberContext.compilationUnit; |
1729 } | 1743 } |
1730 | 1744 |
1731 @override | 1745 @override |
1732 bool get hasTreeElements => memberContext.hasTreeElements; | 1746 bool get hasTreeElements => memberContext.hasTreeElements; |
1733 | 1747 |
1734 @override | 1748 @override |
1735 TreeElements get treeElements => memberContext.treeElements; | 1749 TreeElements get treeElements => memberContext.treeElements; |
1736 } | 1750 } |
1737 | 1751 |
| 1752 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
1738 class LocalFunctionElementZ extends DeserializedElementZ | 1753 class LocalFunctionElementZ extends DeserializedElementZ |
1739 with | 1754 with |
1740 LocalExecutableMixin, | 1755 LocalExecutableMixin, |
1741 AstElementMixinZ, | 1756 AstElementMixinZ<FunctionExpression>, |
1742 ParametersMixin, | 1757 ParametersMixin, |
1743 FunctionTypedElementMixin, | 1758 FunctionTypedElementMixin, |
1744 TypedElementMixin | 1759 TypedElementMixin<ResolutionFunctionType> |
1745 implements LocalFunctionElement { | 1760 implements LocalFunctionElement { |
1746 LocalFunctionElementZ(ObjectDecoder decoder) : super(decoder); | 1761 LocalFunctionElementZ(ObjectDecoder decoder) : super(decoder); |
1747 | 1762 |
1748 @override | 1763 @override |
1749 accept(ElementVisitor visitor, arg) { | 1764 accept(ElementVisitor visitor, arg) { |
1750 return visitor.visitLocalFunctionElement(this, arg); | 1765 return visitor.visitLocalFunctionElement(this, arg); |
1751 } | 1766 } |
1752 | 1767 |
1753 @override | 1768 @override |
1754 ElementKind get kind => ElementKind.FUNCTION; | 1769 ElementKind get kind => ElementKind.FUNCTION; |
1755 | 1770 |
1756 @override | 1771 @override |
1757 AsyncMarker get asyncMarker { | 1772 AsyncMarker get asyncMarker { |
1758 return _decoder.getEnum(Key.ASYNC_MARKER, AsyncMarker.values); | 1773 return _decoder.getEnum(Key.ASYNC_MARKER, AsyncMarker.values); |
1759 } | 1774 } |
1760 } | 1775 } |
1761 | 1776 |
| 1777 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
1762 abstract class GetterElementZ extends DeserializedElementZ | 1778 abstract class GetterElementZ extends DeserializedElementZ |
1763 with | 1779 with |
1764 AnalyzableElementMixin, | 1780 AnalyzableElementMixin, |
1765 AstElementMixinZ, | 1781 AstElementMixinZ<FunctionExpression>, |
1766 FunctionTypedElementMixin, | 1782 FunctionTypedElementMixin, |
1767 ParametersMixin, | 1783 ParametersMixin, |
1768 TypedElementMixin, | 1784 TypedElementMixin<ResolutionFunctionType>, |
1769 MemberElementMixin | 1785 MemberElementMixin |
1770 implements GetterElement { | 1786 implements GetterElement { |
1771 AbstractFieldElement abstractField; | 1787 AbstractFieldElement abstractField; |
1772 SetterElement setter; | 1788 SetterElement setter; |
1773 | 1789 |
1774 GetterElementZ(ObjectDecoder decoder) : super(decoder); | 1790 GetterElementZ(ObjectDecoder decoder) : super(decoder); |
1775 | 1791 |
1776 @override | 1792 @override |
1777 ElementKind get kind => ElementKind.GETTER; | 1793 ElementKind get kind => ElementKind.GETTER; |
1778 | 1794 |
(...skipping 18 matching lines...) Expand all Loading... |
1797 class StaticGetterElementZ extends GetterElementZ | 1813 class StaticGetterElementZ extends GetterElementZ |
1798 with ClassMemberMixin, StaticMemberMixin { | 1814 with ClassMemberMixin, StaticMemberMixin { |
1799 StaticGetterElementZ(ObjectDecoder decoder) : super(decoder); | 1815 StaticGetterElementZ(ObjectDecoder decoder) : super(decoder); |
1800 } | 1816 } |
1801 | 1817 |
1802 class InstanceGetterElementZ extends GetterElementZ | 1818 class InstanceGetterElementZ extends GetterElementZ |
1803 with ClassMemberMixin, InstanceMemberMixin { | 1819 with ClassMemberMixin, InstanceMemberMixin { |
1804 InstanceGetterElementZ(ObjectDecoder decoder) : super(decoder); | 1820 InstanceGetterElementZ(ObjectDecoder decoder) : super(decoder); |
1805 } | 1821 } |
1806 | 1822 |
| 1823 // ignore: STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE |
1807 abstract class SetterElementZ extends DeserializedElementZ | 1824 abstract class SetterElementZ extends DeserializedElementZ |
1808 with | 1825 with |
1809 AnalyzableElementMixin, | 1826 AnalyzableElementMixin, |
1810 AstElementMixinZ, | 1827 AstElementMixinZ<FunctionExpression>, |
1811 FunctionTypedElementMixin, | 1828 FunctionTypedElementMixin, |
1812 ParametersMixin, | 1829 ParametersMixin, |
1813 TypedElementMixin, | 1830 TypedElementMixin<ResolutionFunctionType>, |
1814 MemberElementMixin | 1831 MemberElementMixin |
1815 implements SetterElement { | 1832 implements SetterElement { |
1816 AbstractFieldElement abstractField; | 1833 AbstractFieldElement abstractField; |
1817 GetterElement getter; | 1834 GetterElement getter; |
1818 | 1835 |
1819 SetterElementZ(ObjectDecoder decoder) : super(decoder); | 1836 SetterElementZ(ObjectDecoder decoder) : super(decoder); |
1820 | 1837 |
1821 @override | 1838 @override |
1822 ElementKind get kind => ElementKind.SETTER; | 1839 ElementKind get kind => ElementKind.SETTER; |
1823 | 1840 |
(...skipping 16 matching lines...) Expand all Loading... |
1840 class StaticSetterElementZ extends SetterElementZ | 1857 class StaticSetterElementZ extends SetterElementZ |
1841 with ClassMemberMixin, StaticMemberMixin { | 1858 with ClassMemberMixin, StaticMemberMixin { |
1842 StaticSetterElementZ(ObjectDecoder decoder) : super(decoder); | 1859 StaticSetterElementZ(ObjectDecoder decoder) : super(decoder); |
1843 } | 1860 } |
1844 | 1861 |
1845 class InstanceSetterElementZ extends SetterElementZ | 1862 class InstanceSetterElementZ extends SetterElementZ |
1846 with ClassMemberMixin, InstanceMemberMixin { | 1863 with ClassMemberMixin, InstanceMemberMixin { |
1847 InstanceSetterElementZ(ObjectDecoder decoder) : super(decoder); | 1864 InstanceSetterElementZ(ObjectDecoder decoder) : super(decoder); |
1848 } | 1865 } |
1849 | 1866 |
1850 abstract class TypeDeclarationMixin<T extends GenericType> | 1867 abstract class TypeDeclarationMixin |
1851 implements ElementZ, TypeDeclarationElement { | 1868 implements ElementZ, TypeDeclarationElement { |
1852 List<ResolutionDartType> _typeVariables; | 1869 List<ResolutionDartType> _typeVariables; |
1853 T _rawType; | 1870 GenericType _rawType; |
1854 T _thisType; | 1871 GenericType _thisType; |
1855 Name _memberName; | 1872 Name _memberName; |
1856 | 1873 |
1857 Name get memberName { | 1874 Name get memberName { |
1858 if (_memberName == null) { | 1875 if (_memberName == null) { |
1859 _memberName = new Name(name, library); | 1876 _memberName = new Name(name, library); |
1860 } | 1877 } |
1861 return _memberName; | 1878 return _memberName; |
1862 } | 1879 } |
1863 | 1880 |
1864 List<ResolutionDartType> _getTypeVariables(); | 1881 List<ResolutionDartType> _getTypeVariables(); |
1865 | 1882 |
1866 void _ensureTypes() { | 1883 void _ensureTypes() { |
1867 if (_typeVariables == null) { | 1884 if (_typeVariables == null) { |
1868 _typeVariables = _getTypeVariables(); | 1885 _typeVariables = _getTypeVariables(); |
1869 _rawType = _createType(new List<ResolutionDartType>.filled( | 1886 _rawType = _createType(new List<ResolutionDartType>.filled( |
1870 _typeVariables.length, const ResolutionDynamicType())); | 1887 _typeVariables.length, const ResolutionDynamicType())); |
1871 _thisType = _createType(_typeVariables); | 1888 _thisType = _createType(_typeVariables); |
1872 } | 1889 } |
1873 } | 1890 } |
1874 | 1891 |
1875 T _createType(List<ResolutionDartType> typeArguments); | 1892 GenericType _createType(List<ResolutionDartType> typeArguments); |
1876 | 1893 |
1877 @override | 1894 @override |
1878 List<ResolutionDartType> get typeVariables { | 1895 List<ResolutionDartType> get typeVariables { |
1879 _ensureTypes(); | 1896 _ensureTypes(); |
1880 return _typeVariables; | 1897 return _typeVariables; |
1881 } | 1898 } |
1882 | 1899 |
1883 @override | 1900 @override |
1884 T get rawType { | 1901 GenericType get rawType { |
1885 _ensureTypes(); | 1902 _ensureTypes(); |
1886 return _rawType; | 1903 return _rawType; |
1887 } | 1904 } |
1888 | 1905 |
1889 @override | 1906 @override |
1890 T get thisType { | 1907 GenericType get thisType { |
1891 _ensureTypes(); | 1908 _ensureTypes(); |
1892 return _thisType; | 1909 return _thisType; |
1893 } | 1910 } |
1894 | 1911 |
1895 @override | 1912 @override |
1896 T computeType(Resolution resolution) => thisType; | 1913 GenericType computeType(Resolution resolution) => thisType; |
1897 | 1914 |
1898 @override | 1915 @override |
1899 bool get isResolved => true; | 1916 bool get isResolved => true; |
1900 } | 1917 } |
1901 | 1918 |
1902 class TypedefElementZ extends DeserializedElementZ | 1919 class TypedefElementZ extends DeserializedElementZ |
1903 with | 1920 with |
1904 AnalyzableElementMixin, | 1921 AnalyzableElementMixin, |
1905 AstElementMixinZ, | 1922 AstElementMixinZ<Node>, |
1906 LibraryMemberMixin, | 1923 LibraryMemberMixin, |
1907 ParametersMixin, | 1924 ParametersMixin, |
1908 TypeDeclarationMixin<ResolutionTypedefType> | 1925 TypeDeclarationMixin |
1909 implements TypedefElement { | 1926 implements TypedefElement { |
1910 ResolutionDartType _alias; | 1927 ResolutionDartType _alias; |
1911 | 1928 |
1912 TypedefElementZ(ObjectDecoder decoder) : super(decoder); | 1929 TypedefElementZ(ObjectDecoder decoder) : super(decoder); |
1913 | 1930 |
1914 ResolutionTypedefType _createType(List<ResolutionDartType> typeArguments) { | 1931 ResolutionTypedefType _createType(List<ResolutionDartType> typeArguments) { |
1915 return new ResolutionTypedefType(this, typeArguments); | 1932 return new ResolutionTypedefType(this, typeArguments); |
1916 } | 1933 } |
1917 | 1934 |
1918 @override | 1935 @override |
(...skipping 15 matching lines...) Expand all Loading... |
1934 _alias = _decoder.getType(Key.ALIAS); | 1951 _alias = _decoder.getType(Key.ALIAS); |
1935 } | 1952 } |
1936 return _alias; | 1953 return _alias; |
1937 } | 1954 } |
1938 | 1955 |
1939 @override | 1956 @override |
1940 void ensureResolved(Resolution resolution) {} | 1957 void ensureResolved(Resolution resolution) {} |
1941 | 1958 |
1942 @override | 1959 @override |
1943 void checkCyclicReference(Resolution resolution) {} | 1960 void checkCyclicReference(Resolution resolution) {} |
| 1961 |
| 1962 ResolutionTypedefType get thisType => super.thisType; |
| 1963 |
| 1964 ResolutionTypedefType get rawType => super.rawType; |
1944 } | 1965 } |
1945 | 1966 |
1946 class TypeVariableElementZ extends DeserializedElementZ | 1967 class TypeVariableElementZ extends DeserializedElementZ |
1947 with AnalyzableElementMixin, AstElementMixinZ, TypedElementMixin | 1968 with |
| 1969 AnalyzableElementMixin, |
| 1970 AstElementMixinZ<Node>, |
| 1971 TypedElementMixin<ResolutionTypeVariableType> |
1948 implements TypeVariableElement { | 1972 implements TypeVariableElement { |
1949 GenericElement _typeDeclaration; | 1973 GenericElement _typeDeclaration; |
1950 ResolutionTypeVariableType _type; | 1974 ResolutionTypeVariableType _type; |
1951 ResolutionDartType _bound; | 1975 ResolutionDartType _bound; |
1952 Name _memberName; | 1976 Name _memberName; |
1953 | 1977 |
1954 TypeVariableElementZ(ObjectDecoder decoder) : super(decoder); | 1978 TypeVariableElementZ(ObjectDecoder decoder) : super(decoder); |
1955 | 1979 |
1956 Name get memberName { | 1980 Name get memberName { |
1957 if (_memberName == null) { | 1981 if (_memberName == null) { |
(...skipping 12 matching lines...) Expand all Loading... |
1970 | 1994 |
1971 @override | 1995 @override |
1972 CompilationUnitElement get compilationUnit { | 1996 CompilationUnitElement get compilationUnit { |
1973 return typeDeclaration.compilationUnit; | 1997 return typeDeclaration.compilationUnit; |
1974 } | 1998 } |
1975 | 1999 |
1976 @override | 2000 @override |
1977 Element get enclosingElement => typeDeclaration; | 2001 Element get enclosingElement => typeDeclaration; |
1978 | 2002 |
1979 @override | 2003 @override |
1980 Element get enclosingClass => typeDeclaration; | 2004 ClassElementZ get enclosingClass => typeDeclaration; |
1981 | 2005 |
1982 @override | 2006 @override |
1983 int get index => _decoder.getInt(Key.INDEX); | 2007 int get index => _decoder.getInt(Key.INDEX); |
1984 | 2008 |
1985 @override | 2009 @override |
1986 GenericElement get typeDeclaration { | 2010 GenericElement get typeDeclaration { |
1987 if (_typeDeclaration == null) { | 2011 if (_typeDeclaration == null) { |
1988 _typeDeclaration = _decoder.getElement(Key.TYPE_DECLARATION); | 2012 _typeDeclaration = _decoder.getElement(Key.TYPE_DECLARATION); |
1989 } | 2013 } |
1990 return _typeDeclaration; | 2014 return _typeDeclaration; |
1991 } | 2015 } |
1992 | 2016 |
1993 ResolutionDartType get bound { | 2017 ResolutionDartType get bound { |
1994 if (_bound == null) { | 2018 if (_bound == null) { |
1995 _bound = _decoder.getType(Key.BOUND); | 2019 _bound = _decoder.getType(Key.BOUND); |
1996 } | 2020 } |
1997 return _bound; | 2021 return _bound; |
1998 } | 2022 } |
1999 | 2023 |
2000 @override | 2024 @override |
2001 LibraryElement get library => typeDeclaration.library; | 2025 LibraryElement get library => typeDeclaration.library; |
2002 } | 2026 } |
2003 | 2027 |
2004 class SyntheticTypeVariableElementZ extends ElementZ | 2028 class SyntheticTypeVariableElementZ extends ElementZ |
2005 with AnalyzableElementMixin, AstElementMixinZ | 2029 with AnalyzableElementMixin, AstElementMixinZ<Node> |
2006 implements TypeVariableElement { | 2030 implements TypeVariableElement { |
2007 final TypeDeclarationElement typeDeclaration; | 2031 final TypeDeclarationElement typeDeclaration; |
2008 final int index; | 2032 final int index; |
2009 final String name; | 2033 final String name; |
2010 ResolutionTypeVariableType _type; | 2034 ResolutionTypeVariableType _type; |
2011 ResolutionDartType _bound; | 2035 ResolutionDartType _bound; |
2012 Name _memberName; | 2036 Name _memberName; |
2013 | 2037 |
2014 SyntheticTypeVariableElementZ(this.typeDeclaration, this.index, this.name); | 2038 SyntheticTypeVariableElementZ(this.typeDeclaration, this.index, this.name); |
2015 | 2039 |
(...skipping 24 matching lines...) Expand all Loading... |
2040 return _type; | 2064 return _type; |
2041 } | 2065 } |
2042 | 2066 |
2043 @override | 2067 @override |
2044 ResolutionTypeVariableType computeType(Resolution resolution) => type; | 2068 ResolutionTypeVariableType computeType(Resolution resolution) => type; |
2045 | 2069 |
2046 @override | 2070 @override |
2047 Element get enclosingElement => typeDeclaration; | 2071 Element get enclosingElement => typeDeclaration; |
2048 | 2072 |
2049 @override | 2073 @override |
2050 Element get enclosingClass => typeDeclaration; | 2074 ClassElementZ get enclosingClass => typeDeclaration; |
2051 | 2075 |
2052 ResolutionDartType get bound { | 2076 ResolutionDartType get bound { |
2053 assert(_bound != null, | 2077 assert(_bound != null, |
2054 failedAt(this, "Type variable bound has not been set on $this.")); | 2078 failedAt(this, "Type variable bound has not been set on $this.")); |
2055 return _bound; | 2079 return _bound; |
2056 } | 2080 } |
2057 | 2081 |
2058 @override | 2082 @override |
2059 LibraryElement get library => typeDeclaration.library; | 2083 LibraryElement get library => typeDeclaration.library; |
2060 | 2084 |
2061 @override | 2085 @override |
2062 int get sourceOffset => typeDeclaration.sourceOffset; | 2086 int get sourceOffset => typeDeclaration.sourceOffset; |
2063 | 2087 |
2064 @override | 2088 @override |
2065 SourceSpan get sourcePosition => typeDeclaration.sourcePosition; | 2089 SourceSpan get sourcePosition => typeDeclaration.sourcePosition; |
2066 } | 2090 } |
2067 | 2091 |
2068 abstract class ParameterElementZ extends DeserializedElementZ | 2092 abstract class ParameterElementZ extends DeserializedElementZ |
2069 with AnalyzableElementMixin, AstElementMixinZ, TypedElementMixin | 2093 with |
| 2094 AnalyzableElementMixin, |
| 2095 AstElementMixinZ<VariableDefinitions>, |
| 2096 TypedElementMixin |
2070 implements ParameterElement { | 2097 implements ParameterElement { |
2071 FunctionElement _functionDeclaration; | 2098 FunctionElement _functionDeclaration; |
2072 ConstantExpression _constant; | 2099 ConstantExpression _constant; |
2073 ResolutionDartType _type; | 2100 ResolutionDartType _type; |
2074 | 2101 |
2075 ParameterElementZ(ObjectDecoder decoder) : super(decoder); | 2102 ParameterElementZ(ObjectDecoder decoder) : super(decoder); |
2076 | 2103 |
2077 @override | 2104 @override |
2078 bool get isFinal => _decoder.getBool(Key.IS_FINAL); | 2105 bool get isFinal => _decoder.getBool(Key.IS_FINAL); |
2079 | 2106 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2115 | 2142 |
2116 @override | 2143 @override |
2117 FunctionSignature get functionSignature => _unsupported('functionSignature'); | 2144 FunctionSignature get functionSignature => _unsupported('functionSignature'); |
2118 | 2145 |
2119 // TODO(johnniwinther): Remove [initializer] and [node] on | 2146 // TODO(johnniwinther): Remove [initializer] and [node] on |
2120 // [ParameterElementZ] when the inference does need these. | 2147 // [ParameterElementZ] when the inference does need these. |
2121 @override | 2148 @override |
2122 Expression initializer; | 2149 Expression initializer; |
2123 | 2150 |
2124 @override | 2151 @override |
2125 Node node; | 2152 VariableDefinitions node; |
2126 | 2153 |
2127 @override | 2154 @override |
2128 bool get isNamed => _decoder.getBool(Key.IS_NAMED); | 2155 bool get isNamed => _decoder.getBool(Key.IS_NAMED); |
2129 | 2156 |
2130 @override | 2157 @override |
2131 bool get isOptional => _decoder.getBool(Key.IS_OPTIONAL); | 2158 bool get isOptional => _decoder.getBool(Key.IS_OPTIONAL); |
2132 | 2159 |
2133 @override | 2160 @override |
2134 LibraryElement get library => executableContext.library; | 2161 LibraryElement get library => executableContext.library; |
2135 | 2162 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2176 @override | 2203 @override |
2177 accept(ElementVisitor visitor, arg) { | 2204 accept(ElementVisitor visitor, arg) { |
2178 return visitor.visitFieldParameterElement(this, arg); | 2205 return visitor.visitFieldParameterElement(this, arg); |
2179 } | 2206 } |
2180 | 2207 |
2181 @override | 2208 @override |
2182 ElementKind get kind => ElementKind.INITIALIZING_FORMAL; | 2209 ElementKind get kind => ElementKind.INITIALIZING_FORMAL; |
2183 | 2210 |
2184 @override | 2211 @override |
2185 bool get isLocal => true; | 2212 bool get isLocal => true; |
| 2213 |
| 2214 ConstructorElementZ get functionDeclaration => super.functionDeclaration; |
2186 } | 2215 } |
2187 | 2216 |
2188 class LocalVariableElementZ extends DeserializedElementZ | 2217 class LocalVariableElementZ extends DeserializedElementZ |
2189 with | 2218 with |
2190 AnalyzableElementMixin, | 2219 AnalyzableElementMixin, |
2191 AstElementMixinZ, | 2220 AstElementMixinZ<VariableDefinitions>, |
2192 LocalExecutableMixin, | 2221 LocalExecutableMixin, |
2193 TypedElementMixin | 2222 TypedElementMixin |
2194 implements LocalVariableElement { | 2223 implements LocalVariableElement { |
2195 bool _isConst; | 2224 bool _isConst; |
2196 ConstantExpression _constant; | 2225 ConstantExpression _constant; |
2197 | 2226 |
2198 LocalVariableElementZ(ObjectDecoder decoder) : super(decoder); | 2227 LocalVariableElementZ(ObjectDecoder decoder) : super(decoder); |
2199 | 2228 |
2200 @override | 2229 @override |
2201 accept(ElementVisitor visitor, arg) { | 2230 accept(ElementVisitor visitor, arg) { |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2412 } | 2441 } |
2413 | 2442 |
2414 @override | 2443 @override |
2415 Node get node => throw new UnsupportedError('${this}.node'); | 2444 Node get node => throw new UnsupportedError('${this}.node'); |
2416 | 2445 |
2417 @override | 2446 @override |
2418 bool get hasNode => false; | 2447 bool get hasNode => false; |
2419 | 2448 |
2420 String toString() => 'MetadataAnnotationZ(${constant.toDartText()})'; | 2449 String toString() => 'MetadataAnnotationZ(${constant.toDartText()})'; |
2421 } | 2450 } |
OLD | NEW |