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 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 } | 242 } |
243 | 243 |
244 abstract class AnalyzableElementMixin implements AnalyzableElement, ElementZ { | 244 abstract class AnalyzableElementMixin implements AnalyzableElement, ElementZ { |
245 @override | 245 @override |
246 bool get hasTreeElements => _unsupported('hasTreeElements'); | 246 bool get hasTreeElements => _unsupported('hasTreeElements'); |
247 | 247 |
248 @override | 248 @override |
249 TreeElements get treeElements => _unsupported('treeElements'); | 249 TreeElements get treeElements => _unsupported('treeElements'); |
250 } | 250 } |
251 | 251 |
252 abstract class AstElementMixin implements AstElement, ElementZ { | 252 abstract class AstElementMixinZ implements AstElement, ElementZ { |
| 253 ResolvedAst _resolvedAst; |
| 254 |
253 // TODO(johnniwinther): This is needed for the token invariant assertion. Find | 255 // TODO(johnniwinther): This is needed for the token invariant assertion. Find |
254 // another way to bypass the test for modelz. | 256 // another way to bypass the test for modelz. |
255 @override | 257 @override |
256 bool get hasNode => false; | 258 bool get hasNode => false; |
257 | 259 |
258 @override | 260 @override |
259 bool get hasResolvedAst => _unsupported('hasResolvedAst'); | 261 bool get hasResolvedAst => _resolvedAst != null; |
260 | 262 |
261 @override | 263 @override |
262 get node => _unsupported('node'); | 264 get node => _unsupported('node'); |
263 | 265 |
264 @override | 266 @override |
265 ResolvedAst get resolvedAst => _unsupported('resolvedAst'); | 267 ResolvedAst get resolvedAst { |
| 268 assert(invariant(this, _resolvedAst != null, |
| 269 message: "ResolvedAst has not been set for $this.")); |
| 270 return _resolvedAst; |
| 271 } |
| 272 |
| 273 void set resolvedAst(ResolvedAst value) { |
| 274 assert(invariant(this, _resolvedAst == null, |
| 275 message: "ResolvedAst has already been set for $this.")); |
| 276 _resolvedAst = value; |
| 277 } |
266 } | 278 } |
267 | 279 |
268 abstract class ContainerMixin | 280 abstract class ContainerMixin |
269 implements DeserializedElementZ, ScopeContainerElement { | 281 implements DeserializedElementZ, ScopeContainerElement { |
270 MappedContainer _membersMap = new MappedContainer(); | 282 MappedContainer _membersMap = new MappedContainer(); |
271 | 283 |
272 @override | 284 @override |
273 Element localLookup(String name) { | 285 Element localLookup(String name) { |
274 return _membersMap.lookup( | 286 return _membersMap.lookup( |
275 name, _decoder.getMap(Key.MEMBERS, isOptional: true)); | 287 name, _decoder.getMap(Key.MEMBERS, isOptional: true)); |
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
794 | 806 |
795 @override | 807 @override |
796 void ensureResolved(Resolution resolution) { | 808 void ensureResolved(Resolution resolution) { |
797 resolution.registerClass(this); | 809 resolution.registerClass(this); |
798 } | 810 } |
799 } | 811 } |
800 | 812 |
801 class ClassElementZ extends DeserializedElementZ | 813 class ClassElementZ extends DeserializedElementZ |
802 with | 814 with |
803 AnalyzableElementMixin, | 815 AnalyzableElementMixin, |
804 AstElementMixin, | 816 AstElementMixinZ, |
805 ClassElementCommon, | 817 ClassElementCommon, |
806 class_members.ClassMemberMixin, | 818 class_members.ClassMemberMixin, |
807 ContainerMixin, | 819 ContainerMixin, |
808 LibraryMemberMixin, | 820 LibraryMemberMixin, |
809 TypeDeclarationMixin<InterfaceType>, | 821 TypeDeclarationMixin<InterfaceType>, |
810 ClassElementMixin | 822 ClassElementMixin |
811 implements ClassElement { | 823 implements ClassElement { |
812 bool _isObject; | 824 bool _isObject; |
813 DartType _supertype; | 825 DartType _supertype; |
814 OrderedTypeSet _allSupertypesAndSelf; | 826 OrderedTypeSet _allSupertypesAndSelf; |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
915 InterfaceType get mixinType => _mixinType ??= _decoder.getType(Key.MIXIN); | 927 InterfaceType get mixinType => _mixinType ??= _decoder.getType(Key.MIXIN); |
916 } | 928 } |
917 | 929 |
918 class UnnamedMixinApplicationElementZ extends ElementZ | 930 class UnnamedMixinApplicationElementZ extends ElementZ |
919 with | 931 with |
920 ClassElementCommon, | 932 ClassElementCommon, |
921 ClassElementMixin, | 933 ClassElementMixin, |
922 class_members.ClassMemberMixin, | 934 class_members.ClassMemberMixin, |
923 TypeDeclarationMixin<InterfaceType>, | 935 TypeDeclarationMixin<InterfaceType>, |
924 AnalyzableElementMixin, | 936 AnalyzableElementMixin, |
925 AstElementMixin, | 937 AstElementMixinZ, |
926 MixinApplicationElementCommon, | 938 MixinApplicationElementCommon, |
927 MixinApplicationElementMixin { | 939 MixinApplicationElementMixin { |
928 final String name; | 940 final String name; |
929 final ClassElement _subclass; | 941 final ClassElement _subclass; |
930 final InterfaceType supertype; | 942 final InterfaceType supertype; |
931 final Link<DartType> interfaces; | 943 final Link<DartType> interfaces; |
932 OrderedTypeSet _allSupertypesAndSelf; | 944 OrderedTypeSet _allSupertypesAndSelf; |
933 Link<ConstructorElement> _constructors; | 945 Link<ConstructorElement> _constructors; |
934 | 946 |
935 UnnamedMixinApplicationElementZ( | 947 UnnamedMixinApplicationElementZ( |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1036 if (_enumValues == null) { | 1048 if (_enumValues == null) { |
1037 _enumValues = _decoder.getElements(Key.FIELDS); | 1049 _enumValues = _decoder.getElements(Key.FIELDS); |
1038 } | 1050 } |
1039 return _enumValues; | 1051 return _enumValues; |
1040 } | 1052 } |
1041 } | 1053 } |
1042 | 1054 |
1043 abstract class ConstructorElementZ extends DeserializedElementZ | 1055 abstract class ConstructorElementZ extends DeserializedElementZ |
1044 with | 1056 with |
1045 AnalyzableElementMixin, | 1057 AnalyzableElementMixin, |
1046 AstElementMixin, | 1058 AstElementMixinZ, |
1047 ClassMemberMixin, | 1059 ClassMemberMixin, |
1048 FunctionTypedElementMixin, | 1060 FunctionTypedElementMixin, |
1049 ParametersMixin, | 1061 ParametersMixin, |
1050 TypedElementMixin, | 1062 TypedElementMixin, |
1051 MemberElementMixin | 1063 MemberElementMixin |
1052 implements | 1064 implements |
1053 ConstructorElement, | 1065 ConstructorElement, |
1054 // TODO(johnniwinther): Sort out whether a constructor is a method. | 1066 // TODO(johnniwinther): Sort out whether a constructor is a method. |
1055 MethodElement { | 1067 MethodElement { |
1056 ConstantConstructor _constantConstructor; | 1068 ConstantConstructor _constantConstructor; |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1217 } | 1229 } |
1218 | 1230 |
1219 @override | 1231 @override |
1220 PrefixElement get redirectionDeferredPrefix { | 1232 PrefixElement get redirectionDeferredPrefix { |
1221 _ensureRedirection(); | 1233 _ensureRedirection(); |
1222 return _redirectionDeferredPrefix; | 1234 return _redirectionDeferredPrefix; |
1223 } | 1235 } |
1224 } | 1236 } |
1225 | 1237 |
1226 class ForwardingConstructorElementZ extends ElementZ | 1238 class ForwardingConstructorElementZ extends ElementZ |
1227 with AnalyzableElementMixin, AstElementMixin | 1239 with AnalyzableElementMixin, AstElementMixinZ |
1228 implements ConstructorElement { | 1240 implements ConstructorElement { |
1229 final MixinApplicationElement enclosingClass; | 1241 final MixinApplicationElement enclosingClass; |
1230 final ConstructorElement definingConstructor; | 1242 final ConstructorElement definingConstructor; |
1231 | 1243 |
1232 ForwardingConstructorElementZ(this.enclosingClass, this.definingConstructor); | 1244 ForwardingConstructorElementZ(this.enclosingClass, this.definingConstructor); |
1233 | 1245 |
1234 @override | 1246 @override |
1235 CompilationUnitElement get compilationUnit => enclosingClass.compilationUnit; | 1247 CompilationUnitElement get compilationUnit => enclosingClass.compilationUnit; |
1236 | 1248 |
1237 @override | 1249 @override |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1352 @override | 1364 @override |
1353 Name get memberName => new Name(name, library); | 1365 Name get memberName => new Name(name, library); |
1354 | 1366 |
1355 @override | 1367 @override |
1356 List<FunctionElement> get nestedClosures => <FunctionElement>[]; | 1368 List<FunctionElement> get nestedClosures => <FunctionElement>[]; |
1357 } | 1369 } |
1358 | 1370 |
1359 abstract class FieldElementZ extends DeserializedElementZ | 1371 abstract class FieldElementZ extends DeserializedElementZ |
1360 with | 1372 with |
1361 AnalyzableElementMixin, | 1373 AnalyzableElementMixin, |
1362 AstElementMixin, | 1374 AstElementMixinZ, |
1363 TypedElementMixin, | 1375 TypedElementMixin, |
1364 MemberElementMixin | 1376 MemberElementMixin |
1365 implements FieldElement { | 1377 implements FieldElement { |
1366 bool _isConst; | 1378 bool _isConst; |
1367 ConstantExpression _constant; | 1379 ConstantExpression _constant; |
1368 | 1380 |
1369 FieldElementZ(ObjectDecoder decoder) : super(decoder); | 1381 FieldElementZ(ObjectDecoder decoder) : super(decoder); |
1370 | 1382 |
1371 @override | 1383 @override |
1372 ElementKind get kind => ElementKind.FIELD; | 1384 ElementKind get kind => ElementKind.FIELD; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1419 } | 1431 } |
1420 | 1432 |
1421 class InstanceFieldElementZ extends FieldElementZ | 1433 class InstanceFieldElementZ extends FieldElementZ |
1422 with ClassMemberMixin, InstanceMemberMixin { | 1434 with ClassMemberMixin, InstanceMemberMixin { |
1423 InstanceFieldElementZ(ObjectDecoder decoder) : super(decoder); | 1435 InstanceFieldElementZ(ObjectDecoder decoder) : super(decoder); |
1424 } | 1436 } |
1425 | 1437 |
1426 abstract class FunctionElementZ extends DeserializedElementZ | 1438 abstract class FunctionElementZ extends DeserializedElementZ |
1427 with | 1439 with |
1428 AnalyzableElementMixin, | 1440 AnalyzableElementMixin, |
1429 AstElementMixin, | 1441 AstElementMixinZ, |
1430 ParametersMixin, | 1442 ParametersMixin, |
1431 FunctionTypedElementMixin, | 1443 FunctionTypedElementMixin, |
1432 TypedElementMixin, | 1444 TypedElementMixin, |
1433 MemberElementMixin | 1445 MemberElementMixin |
1434 implements MethodElement { | 1446 implements MethodElement { |
1435 FunctionElementZ(ObjectDecoder decoder) : super(decoder); | 1447 FunctionElementZ(ObjectDecoder decoder) : super(decoder); |
1436 | 1448 |
1437 @override | 1449 @override |
1438 ElementKind get kind => ElementKind.FUNCTION; | 1450 ElementKind get kind => ElementKind.FUNCTION; |
1439 | 1451 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1498 @override | 1510 @override |
1499 bool get hasTreeElements => memberContext.hasTreeElements; | 1511 bool get hasTreeElements => memberContext.hasTreeElements; |
1500 | 1512 |
1501 @override | 1513 @override |
1502 TreeElements get treeElements => memberContext.treeElements; | 1514 TreeElements get treeElements => memberContext.treeElements; |
1503 } | 1515 } |
1504 | 1516 |
1505 class LocalFunctionElementZ extends DeserializedElementZ | 1517 class LocalFunctionElementZ extends DeserializedElementZ |
1506 with | 1518 with |
1507 LocalExecutableMixin, | 1519 LocalExecutableMixin, |
1508 AstElementMixin, | 1520 AstElementMixinZ, |
1509 ParametersMixin, | 1521 ParametersMixin, |
1510 FunctionTypedElementMixin, | 1522 FunctionTypedElementMixin, |
1511 TypedElementMixin | 1523 TypedElementMixin |
1512 implements LocalFunctionElement { | 1524 implements LocalFunctionElement { |
1513 LocalFunctionElementZ(ObjectDecoder decoder) : super(decoder); | 1525 LocalFunctionElementZ(ObjectDecoder decoder) : super(decoder); |
1514 | 1526 |
1515 @override | 1527 @override |
1516 accept(ElementVisitor visitor, arg) { | 1528 accept(ElementVisitor visitor, arg) { |
1517 return visitor.visitLocalFunctionElement(this, arg); | 1529 return visitor.visitLocalFunctionElement(this, arg); |
1518 } | 1530 } |
1519 | 1531 |
1520 @override | 1532 @override |
1521 ElementKind get kind => ElementKind.FUNCTION; | 1533 ElementKind get kind => ElementKind.FUNCTION; |
1522 | 1534 |
1523 @override | 1535 @override |
1524 AsyncMarker get asyncMarker { | 1536 AsyncMarker get asyncMarker { |
1525 return _decoder.getEnum(Key.ASYNC_MARKER, AsyncMarker.values); | 1537 return _decoder.getEnum(Key.ASYNC_MARKER, AsyncMarker.values); |
1526 } | 1538 } |
1527 } | 1539 } |
1528 | 1540 |
1529 abstract class GetterElementZ extends DeserializedElementZ | 1541 abstract class GetterElementZ extends DeserializedElementZ |
1530 with | 1542 with |
1531 AnalyzableElementMixin, | 1543 AnalyzableElementMixin, |
1532 AstElementMixin, | 1544 AstElementMixinZ, |
1533 FunctionTypedElementMixin, | 1545 FunctionTypedElementMixin, |
1534 ParametersMixin, | 1546 ParametersMixin, |
1535 TypedElementMixin, | 1547 TypedElementMixin, |
1536 MemberElementMixin | 1548 MemberElementMixin |
1537 implements GetterElement { | 1549 implements GetterElement { |
1538 AbstractFieldElement abstractField; | 1550 AbstractFieldElement abstractField; |
1539 SetterElement setter; | 1551 SetterElement setter; |
1540 | 1552 |
1541 GetterElementZ(ObjectDecoder decoder) : super(decoder); | 1553 GetterElementZ(ObjectDecoder decoder) : super(decoder); |
1542 | 1554 |
(...skipping 19 matching lines...) Expand all Loading... |
1562 } | 1574 } |
1563 | 1575 |
1564 class InstanceGetterElementZ extends GetterElementZ | 1576 class InstanceGetterElementZ extends GetterElementZ |
1565 with ClassMemberMixin, InstanceMemberMixin { | 1577 with ClassMemberMixin, InstanceMemberMixin { |
1566 InstanceGetterElementZ(ObjectDecoder decoder) : super(decoder); | 1578 InstanceGetterElementZ(ObjectDecoder decoder) : super(decoder); |
1567 } | 1579 } |
1568 | 1580 |
1569 abstract class SetterElementZ extends DeserializedElementZ | 1581 abstract class SetterElementZ extends DeserializedElementZ |
1570 with | 1582 with |
1571 AnalyzableElementMixin, | 1583 AnalyzableElementMixin, |
1572 AstElementMixin, | 1584 AstElementMixinZ, |
1573 FunctionTypedElementMixin, | 1585 FunctionTypedElementMixin, |
1574 ParametersMixin, | 1586 ParametersMixin, |
1575 TypedElementMixin, | 1587 TypedElementMixin, |
1576 MemberElementMixin | 1588 MemberElementMixin |
1577 implements SetterElement { | 1589 implements SetterElement { |
1578 AbstractFieldElement abstractField; | 1590 AbstractFieldElement abstractField; |
1579 GetterElement getter; | 1591 GetterElement getter; |
1580 | 1592 |
1581 SetterElementZ(ObjectDecoder decoder) : super(decoder); | 1593 SetterElementZ(ObjectDecoder decoder) : super(decoder); |
1582 | 1594 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1654 @override | 1666 @override |
1655 T computeType(Resolution resolution) => thisType; | 1667 T computeType(Resolution resolution) => thisType; |
1656 | 1668 |
1657 @override | 1669 @override |
1658 bool get isResolved => true; | 1670 bool get isResolved => true; |
1659 } | 1671 } |
1660 | 1672 |
1661 class TypedefElementZ extends DeserializedElementZ | 1673 class TypedefElementZ extends DeserializedElementZ |
1662 with | 1674 with |
1663 AnalyzableElementMixin, | 1675 AnalyzableElementMixin, |
1664 AstElementMixin, | 1676 AstElementMixinZ, |
1665 LibraryMemberMixin, | 1677 LibraryMemberMixin, |
1666 ParametersMixin, | 1678 ParametersMixin, |
1667 TypeDeclarationMixin<TypedefType> | 1679 TypeDeclarationMixin<TypedefType> |
1668 implements TypedefElement { | 1680 implements TypedefElement { |
1669 DartType _alias; | 1681 DartType _alias; |
1670 | 1682 |
1671 TypedefElementZ(ObjectDecoder decoder) : super(decoder); | 1683 TypedefElementZ(ObjectDecoder decoder) : super(decoder); |
1672 | 1684 |
1673 TypedefType _createType(List<DartType> typeArguments) { | 1685 TypedefType _createType(List<DartType> typeArguments) { |
1674 return new TypedefType(this, typeArguments); | 1686 return new TypedefType(this, typeArguments); |
(...skipping 21 matching lines...) Expand all Loading... |
1696 } | 1708 } |
1697 | 1709 |
1698 @override | 1710 @override |
1699 void ensureResolved(Resolution resolution) {} | 1711 void ensureResolved(Resolution resolution) {} |
1700 | 1712 |
1701 @override | 1713 @override |
1702 void checkCyclicReference(Resolution resolution) {} | 1714 void checkCyclicReference(Resolution resolution) {} |
1703 } | 1715 } |
1704 | 1716 |
1705 class TypeVariableElementZ extends DeserializedElementZ | 1717 class TypeVariableElementZ extends DeserializedElementZ |
1706 with AnalyzableElementMixin, AstElementMixin, TypedElementMixin | 1718 with AnalyzableElementMixin, AstElementMixinZ, TypedElementMixin |
1707 implements TypeVariableElement { | 1719 implements TypeVariableElement { |
1708 TypeDeclarationElement _typeDeclaration; | 1720 TypeDeclarationElement _typeDeclaration; |
1709 TypeVariableType _type; | 1721 TypeVariableType _type; |
1710 DartType _bound; | 1722 DartType _bound; |
1711 Name _memberName; | 1723 Name _memberName; |
1712 | 1724 |
1713 TypeVariableElementZ(ObjectDecoder decoder) : super(decoder); | 1725 TypeVariableElementZ(ObjectDecoder decoder) : super(decoder); |
1714 | 1726 |
1715 Name get memberName { | 1727 Name get memberName { |
1716 if (_memberName == null) { | 1728 if (_memberName == null) { |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1754 _bound = _decoder.getType(Key.BOUND); | 1766 _bound = _decoder.getType(Key.BOUND); |
1755 } | 1767 } |
1756 return _bound; | 1768 return _bound; |
1757 } | 1769 } |
1758 | 1770 |
1759 @override | 1771 @override |
1760 LibraryElement get library => typeDeclaration.library; | 1772 LibraryElement get library => typeDeclaration.library; |
1761 } | 1773 } |
1762 | 1774 |
1763 class SyntheticTypeVariableElementZ extends ElementZ | 1775 class SyntheticTypeVariableElementZ extends ElementZ |
1764 with AnalyzableElementMixin, AstElementMixin | 1776 with AnalyzableElementMixin, AstElementMixinZ |
1765 implements TypeVariableElement { | 1777 implements TypeVariableElement { |
1766 final TypeDeclarationElement typeDeclaration; | 1778 final TypeDeclarationElement typeDeclaration; |
1767 final int index; | 1779 final int index; |
1768 final String name; | 1780 final String name; |
1769 TypeVariableType _type; | 1781 TypeVariableType _type; |
1770 DartType _bound; | 1782 DartType _bound; |
1771 Name _memberName; | 1783 Name _memberName; |
1772 | 1784 |
1773 SyntheticTypeVariableElementZ(this.typeDeclaration, this.index, this.name); | 1785 SyntheticTypeVariableElementZ(this.typeDeclaration, this.index, this.name); |
1774 | 1786 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1818 LibraryElement get library => typeDeclaration.library; | 1830 LibraryElement get library => typeDeclaration.library; |
1819 | 1831 |
1820 @override | 1832 @override |
1821 int get sourceOffset => typeDeclaration.sourceOffset; | 1833 int get sourceOffset => typeDeclaration.sourceOffset; |
1822 | 1834 |
1823 @override | 1835 @override |
1824 SourceSpan get sourcePosition => typeDeclaration.sourcePosition; | 1836 SourceSpan get sourcePosition => typeDeclaration.sourcePosition; |
1825 } | 1837 } |
1826 | 1838 |
1827 abstract class ParameterElementZ extends DeserializedElementZ | 1839 abstract class ParameterElementZ extends DeserializedElementZ |
1828 with AnalyzableElementMixin, AstElementMixin, TypedElementMixin | 1840 with AnalyzableElementMixin, AstElementMixinZ, TypedElementMixin |
1829 implements ParameterElement { | 1841 implements ParameterElement { |
1830 FunctionElement _functionDeclaration; | 1842 FunctionElement _functionDeclaration; |
1831 ConstantExpression _constant; | 1843 ConstantExpression _constant; |
1832 DartType _type; | 1844 DartType _type; |
1833 | 1845 |
1834 ParameterElementZ(ObjectDecoder decoder) : super(decoder); | 1846 ParameterElementZ(ObjectDecoder decoder) : super(decoder); |
1835 | 1847 |
1836 @override | 1848 @override |
1837 bool get isFinal => _decoder.getBool(Key.IS_FINAL); | 1849 bool get isFinal => _decoder.getBool(Key.IS_FINAL); |
1838 | 1850 |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1931 return visitor.visitFieldParameterElement(this, arg); | 1943 return visitor.visitFieldParameterElement(this, arg); |
1932 } | 1944 } |
1933 | 1945 |
1934 @override | 1946 @override |
1935 ElementKind get kind => ElementKind.INITIALIZING_FORMAL; | 1947 ElementKind get kind => ElementKind.INITIALIZING_FORMAL; |
1936 } | 1948 } |
1937 | 1949 |
1938 class LocalVariableElementZ extends DeserializedElementZ | 1950 class LocalVariableElementZ extends DeserializedElementZ |
1939 with | 1951 with |
1940 AnalyzableElementMixin, | 1952 AnalyzableElementMixin, |
1941 AstElementMixin, | 1953 AstElementMixinZ, |
1942 LocalExecutableMixin, | 1954 LocalExecutableMixin, |
1943 TypedElementMixin | 1955 TypedElementMixin |
1944 implements LocalVariableElement { | 1956 implements LocalVariableElement { |
1945 bool _isConst; | 1957 bool _isConst; |
1946 ConstantExpression _constant; | 1958 ConstantExpression _constant; |
1947 | 1959 |
1948 LocalVariableElementZ(ObjectDecoder decoder) : super(decoder); | 1960 LocalVariableElementZ(ObjectDecoder decoder) : super(decoder); |
1949 | 1961 |
1950 @override | 1962 @override |
1951 accept(ElementVisitor visitor, arg) { | 1963 accept(ElementVisitor visitor, arg) { |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2109 } | 2121 } |
2110 | 2122 |
2111 @override | 2123 @override |
2112 ElementKind get kind => ElementKind.PREFIX; | 2124 ElementKind get kind => ElementKind.PREFIX; |
2113 | 2125 |
2114 @override | 2126 @override |
2115 Element lookupLocalMember(String memberName) { | 2127 Element lookupLocalMember(String memberName) { |
2116 return _unsupported('lookupLocalMember'); | 2128 return _unsupported('lookupLocalMember'); |
2117 } | 2129 } |
2118 } | 2130 } |
OLD | NEW |