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

Unified Diff: pkg/compiler/lib/src/serialization/modelz.dart

Issue 1929963005: Serialize default constructors separately. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Rebased Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/serialization/keys.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/serialization/modelz.dart
diff --git a/pkg/compiler/lib/src/serialization/modelz.dart b/pkg/compiler/lib/src/serialization/modelz.dart
index c7a347a1635086928df517c249a0cdcb560f1f66..31f5bad336e6ae7694943fd5fed0fe08469035fc 100644
--- a/pkg/compiler/lib/src/serialization/modelz.dart
+++ b/pkg/compiler/lib/src/serialization/modelz.dart
@@ -1090,14 +1090,7 @@ abstract class ConstructorElementZ extends DeserializedElementZ
AsyncMarker get asyncMarker => AsyncMarker.SYNC;
@override
- ConstructorElement get definingConstructor {
- String name =
- _decoder.getString(Key.DEFINING_CONSTRUCTOR, isOptional: true);
- if (name != null) {
- return enclosingClass.superclass.lookupConstructor(name);
- }
- return null;
- }
+ ConstructorElement get definingConstructor => null;
@override
ConstructorElement get effectiveTarget {
@@ -1143,9 +1136,21 @@ class GenerativeConstructorElementZ extends ConstructorElementZ {
@override
bool get isRedirectingGenerative => _decoder.getBool(Key.IS_REDIRECTING);
+}
+
+class DefaultConstructorElementZ extends ConstructorElementZ {
+ DefaultConstructorElementZ(ObjectDecoder decoder) : super(decoder);
+
+ @override
+ ElementKind get kind => ElementKind.GENERATIVE_CONSTRUCTOR;
@override
- bool get isSynthesized => definingConstructor != null;
+ bool get isSynthesized => true;
+
+ @override
+ ConstructorElement get definingConstructor {
+ return enclosingClass.superclass.lookupConstructor('');
+ }
}
class FactoryConstructorElementZ extends ConstructorElementZ {
« no previous file with comments | « pkg/compiler/lib/src/serialization/keys.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698