| 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 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 } | 312 } |
| 313 } | 313 } |
| 314 | 314 |
| 315 class AbstractFieldElementZ extends ElementZ implements AbstractFieldElement { | 315 class AbstractFieldElementZ extends ElementZ implements AbstractFieldElement { |
| 316 final String name; | 316 final String name; |
| 317 final FunctionElement getter; | 317 final FunctionElement getter; |
| 318 final FunctionElement setter; | 318 final FunctionElement setter; |
| 319 | 319 |
| 320 AbstractFieldElementZ(this.name, this.getter, this.setter); | 320 AbstractFieldElementZ(this.name, this.getter, this.setter); |
| 321 | 321 |
| 322 FunctionElement get _canonicalElement => getter != null ? getter : setter; |
| 323 |
| 322 @override | 324 @override |
| 323 ElementKind get kind => ElementKind.ABSTRACT_FIELD; | 325 ElementKind get kind => ElementKind.ABSTRACT_FIELD; |
| 324 | 326 |
| 325 @override | 327 @override |
| 326 accept(ElementVisitor visitor, arg) { | 328 accept(ElementVisitor visitor, arg) { |
| 327 return visitor.visitAbstractFieldElement(this, arg); | 329 return visitor.visitAbstractFieldElement(this, arg); |
| 328 } | 330 } |
| 329 | 331 |
| 330 @override | 332 @override |
| 331 LibraryElement get library { | 333 LibraryElement get library => _canonicalElement.library; |
| 332 return getter != null ? getter.library : setter.library; | |
| 333 } | |
| 334 | 334 |
| 335 @override | 335 @override |
| 336 Element get enclosingElement { | 336 Element get enclosingElement => _canonicalElement.enclosingElement; |
| 337 return getter != null ? getter.enclosingElement : setter.enclosingElement; | |
| 338 } | |
| 339 | 337 |
| 340 @override | 338 @override |
| 341 SourceSpan get sourcePosition { | 339 SourceSpan get sourcePosition => _canonicalElement.sourcePosition; |
| 342 return getter != null ? getter.sourcePosition : setter.sourcePosition; | 340 |
| 343 } | 341 @override |
| 342 ClassElement get enclosingClass => _canonicalElement.enclosingClass; |
| 344 } | 343 } |
| 345 | 344 |
| 346 class LibraryElementZ extends DeserializedElementZ | 345 class LibraryElementZ extends DeserializedElementZ |
| 347 with AnalyzableElementMixin, | 346 with AnalyzableElementMixin, |
| 348 ContainerMixin, | 347 ContainerMixin, |
| 349 LibraryElementCommon | 348 LibraryElementCommon |
| 350 implements LibraryElement { | 349 implements LibraryElement { |
| 351 Uri _canonicalUri; | 350 Uri _canonicalUri; |
| 352 CompilationUnitElement _entryCompilationUnit; | 351 CompilationUnitElement _entryCompilationUnit; |
| 353 Link<CompilationUnitElement> _compilationUnits; | 352 Link<CompilationUnitElement> _compilationUnits; |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 _interfaces = toLink( | 845 _interfaces = toLink( |
| 847 _decoder.getTypes(Key.INTERFACES, isOptional: true)); | 846 _decoder.getTypes(Key.INTERFACES, isOptional: true)); |
| 848 } | 847 } |
| 849 return _interfaces; | 848 return _interfaces; |
| 850 } | 849 } |
| 851 | 850 |
| 852 @override | 851 @override |
| 853 bool get isEnumClass => false; | 852 bool get isEnumClass => false; |
| 854 | 853 |
| 855 @override | 854 @override |
| 856 bool get isProxy => _unsupported('isProxy'); | 855 bool get isProxy => _decoder.getBool(Key.IS_PROXY); |
| 857 | 856 |
| 858 @override | 857 @override |
| 859 bool get isUnnamedMixinApplication { | 858 bool get isUnnamedMixinApplication { |
| 860 return _decoder.getBool(Key.IS_UNNAMED_MIXIN_APPLICATION, | 859 return _decoder.getBool(Key.IS_UNNAMED_MIXIN_APPLICATION, |
| 861 isOptional: true, defaultValue: false); | 860 isOptional: true, defaultValue: false); |
| 862 } | 861 } |
| 863 | 862 |
| 864 @override | 863 @override |
| 865 Element lookupBackendMember(String memberName) { | 864 Element lookupBackendMember(String memberName) { |
| 866 return _unsupported('lookupBackendMember'); | 865 return _unsupported('lookupBackendMember'); |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1122 StaticFunctionElementZ(ObjectDecoder decoder) | 1121 StaticFunctionElementZ(ObjectDecoder decoder) |
| 1123 : super(decoder); | 1122 : super(decoder); |
| 1124 } | 1123 } |
| 1125 | 1124 |
| 1126 class InstanceFunctionElementZ extends FunctionElementZ | 1125 class InstanceFunctionElementZ extends FunctionElementZ |
| 1127 with ClassMemberMixin, InstanceMemberMixin { | 1126 with ClassMemberMixin, InstanceMemberMixin { |
| 1128 InstanceFunctionElementZ(ObjectDecoder decoder) | 1127 InstanceFunctionElementZ(ObjectDecoder decoder) |
| 1129 : super(decoder); | 1128 : super(decoder); |
| 1130 } | 1129 } |
| 1131 | 1130 |
| 1131 abstract class LocalExecutableMixin |
| 1132 implements DeserializedElementZ, ExecutableElement, LocalElement { |
| 1133 ExecutableElement _executableContext; |
| 1134 |
| 1135 @override |
| 1136 Element get enclosingElement => executableContext; |
| 1137 |
| 1138 @override |
| 1139 ExecutableElement get executableContext { |
| 1140 if (_executableContext == null) { |
| 1141 _executableContext = _decoder.getElement(Key.EXECUTABLE_CONTEXT); |
| 1142 } |
| 1143 return _executableContext; |
| 1144 } |
| 1145 |
| 1146 @override |
| 1147 MemberElement get memberContext => executableContext.memberContext; |
| 1148 |
| 1149 @override |
| 1150 bool get isLocal => true; |
| 1151 |
| 1152 @override |
| 1153 LibraryElement get library => memberContext.library; |
| 1154 |
| 1155 @override |
| 1156 CompilationUnitElement get compilationUnit { |
| 1157 return memberContext.compilationUnit; |
| 1158 } |
| 1159 |
| 1160 @override |
| 1161 bool get hasTreeElements => memberContext.hasTreeElements; |
| 1162 |
| 1163 @override |
| 1164 TreeElements get treeElements => memberContext.treeElements; |
| 1165 } |
| 1166 |
| 1167 class LocalFunctionElementZ extends DeserializedElementZ |
| 1168 with LocalExecutableMixin, |
| 1169 AstElementMixin, |
| 1170 ParametersMixin, |
| 1171 FunctionTypedElementMixin, |
| 1172 TypedElementMixin |
| 1173 implements LocalFunctionElement { |
| 1174 LocalFunctionElementZ(ObjectDecoder decoder) |
| 1175 : super(decoder); |
| 1176 |
| 1177 @override |
| 1178 accept(ElementVisitor visitor, arg) { |
| 1179 return visitor.visitFunctionElement(this, arg); |
| 1180 } |
| 1181 |
| 1182 @override |
| 1183 ElementKind get kind => ElementKind.FUNCTION; |
| 1184 } |
| 1185 |
| 1132 abstract class GetterElementZ extends DeserializedElementZ | 1186 abstract class GetterElementZ extends DeserializedElementZ |
| 1133 with AnalyzableElementMixin, | 1187 with AnalyzableElementMixin, |
| 1134 AstElementMixin, | 1188 AstElementMixin, |
| 1135 FunctionTypedElementMixin, | 1189 FunctionTypedElementMixin, |
| 1136 ParametersMixin, | 1190 ParametersMixin, |
| 1137 TypedElementMixin, | 1191 TypedElementMixin, |
| 1138 MemberElementMixin | 1192 MemberElementMixin |
| 1139 implements FunctionElement { | 1193 implements FunctionElement { |
| 1140 | 1194 |
| 1141 GetterElementZ(ObjectDecoder decoder) | 1195 GetterElementZ(ObjectDecoder decoder) |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1579 } | 1633 } |
| 1580 | 1634 |
| 1581 @override | 1635 @override |
| 1582 ElementKind get kind => ElementKind.PREFIX; | 1636 ElementKind get kind => ElementKind.PREFIX; |
| 1583 | 1637 |
| 1584 @override | 1638 @override |
| 1585 Element lookupLocalMember(String memberName) { | 1639 Element lookupLocalMember(String memberName) { |
| 1586 return _unsupported('lookupLocalMember'); | 1640 return _unsupported('lookupLocalMember'); |
| 1587 } | 1641 } |
| 1588 } | 1642 } |
| OLD | NEW |