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

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: 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 _unsupported('isUnnamedMixinApplication'); 859 return _unsupported('isUnnamedMixinApplication');
861 } 860 }
862 861
863 @override 862 @override
864 Element lookupBackendMember(String memberName) { 863 Element lookupBackendMember(String memberName) {
865 return _unsupported('lookupBackendMember'); 864 return _unsupported('lookupBackendMember');
866 } 865 }
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1113 StaticFunctionElementZ(ObjectDecoder decoder) 1112 StaticFunctionElementZ(ObjectDecoder decoder)
1114 : super(decoder); 1113 : super(decoder);
1115 } 1114 }
1116 1115
1117 class InstanceFunctionElementZ extends FunctionElementZ 1116 class InstanceFunctionElementZ extends FunctionElementZ
1118 with ClassMemberMixin, InstanceMemberMixin { 1117 with ClassMemberMixin, InstanceMemberMixin {
1119 InstanceFunctionElementZ(ObjectDecoder decoder) 1118 InstanceFunctionElementZ(ObjectDecoder decoder)
1120 : super(decoder); 1119 : super(decoder);
1121 } 1120 }
1122 1121
1122 abstract class LocalExecutableMixin
1123 implements DeserializedElementZ, ExecutableElement, LocalElement {
1124 ExecutableElement _executableContext;
1125
1126 @override
1127 Element get enclosingElement => executableContext;
1128
1129 @override
1130 ExecutableElement get executableContext {
1131 if (_executableContext == null) {
1132 _executableContext = _decoder.getElement(Key.EXECUTABLE_CONTEXT);
1133 }
1134 return _executableContext;
1135 }
1136
1137 @override
1138 MemberElement get memberContext => executableContext.memberContext;
1139
1140 @override
1141 bool get isLocal => true;
1142
1143 @override
1144 LibraryElement get library => memberContext.library;
1145
1146 @override
1147 CompilationUnitElement get compilationUnit {
1148 return memberContext.compilationUnit;
1149 }
1150
1151 @override
1152 bool get hasTreeElements => memberContext.hasTreeElements;
1153
1154 @override
1155 TreeElements get treeElements => memberContext.treeElements;
1156 }
1157
1158 class LocalFunctionElementZ extends DeserializedElementZ
1159 with LocalExecutableMixin,
1160 AstElementMixin,
1161 ParametersMixin,
1162 FunctionTypedElementMixin,
1163 TypedElementMixin
1164 implements LocalFunctionElement {
1165 LocalFunctionElementZ(ObjectDecoder decoder)
1166 : super(decoder);
1167
1168 @override
1169 accept(ElementVisitor visitor, arg) {
1170 return visitor.visitFunctionElement(this, arg);
1171 }
1172
1173 @override
1174 ElementKind get kind => ElementKind.FUNCTION;
1175 }
1176
1123 abstract class GetterElementZ extends DeserializedElementZ 1177 abstract class GetterElementZ extends DeserializedElementZ
1124 with AnalyzableElementMixin, 1178 with AnalyzableElementMixin,
1125 AstElementMixin, 1179 AstElementMixin,
1126 FunctionTypedElementMixin, 1180 FunctionTypedElementMixin,
1127 ParametersMixin, 1181 ParametersMixin,
1128 TypedElementMixin, 1182 TypedElementMixin,
1129 MemberElementMixin 1183 MemberElementMixin
1130 implements FunctionElement { 1184 implements FunctionElement {
1131 1185
1132 GetterElementZ(ObjectDecoder decoder) 1186 GetterElementZ(ObjectDecoder decoder)
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
1570 } 1624 }
1571 1625
1572 @override 1626 @override
1573 ElementKind get kind => ElementKind.PREFIX; 1627 ElementKind get kind => ElementKind.PREFIX;
1574 1628
1575 @override 1629 @override
1576 Element lookupLocalMember(String memberName) { 1630 Element lookupLocalMember(String memberName) {
1577 return _unsupported('lookupLocalMember'); 1631 return _unsupported('lookupLocalMember');
1578 } 1632 }
1579 } 1633 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698