Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Side by Side Diff: pkg/compiler/lib/src/serialization/modelz.dart

Issue 1809533004: Support serialization of WorldImpact (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Rebased Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/serialization/keys.dart ('k') | pkg/compiler/lib/src/serialization/serialization.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698