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

Unified Diff: pkg/analyzer/lib/src/summary/resynthesize.dart

Issue 2034473002: Delay 'supertype' for ClassElementImpl and EnumElementImpl. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 7 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
Index: pkg/analyzer/lib/src/summary/resynthesize.dart
diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart
index 368b9cd95fabfbf763b89b07352dfc0724c6c392..1a2e17f7ee64d511447333e4274d829d96846dcd 100644
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart
@@ -1032,12 +1032,6 @@ class _LibraryResynthesizer {
LibraryElementImpl library;
/**
- * Classes which should have their supertype set to "object" once
- * resynthesis is complete. Only used if [isCoreLibrary] is `true`.
- */
- List<ClassElementImpl> delayedObjectSubclasses = <ClassElementImpl>[];
-
- /**
* Map of compilation unit elements that have been resynthesized so far. The
* key is the URI of the compilation unit.
*/
@@ -1163,14 +1157,6 @@ class _LibraryResynthesizer {
for (_UnitResynthesizer partResynthesizer in partResynthesizers) {
populateUnit(partResynthesizer);
}
- // Update delayed Object class references.
- if (isCoreLibrary) {
- ClassElement objectElement = library.getType('Object');
- assert(objectElement != null);
- for (ClassElementImpl classElement in delayedObjectSubclasses) {
- classElement.supertype = objectElement.type;
- }
- }
// Create the synthetic element for `loadLibrary`.
// Until the client received dart:core and dart:async, we cannot do this,
// because the TypeProvider is not fully initialized. So, it is up to the
@@ -1689,9 +1675,6 @@ class _UnitResynthesizer {
if (libraryResynthesizer.isCoreLibrary &&
serializedClass.supertype == null) {
classElement = buildClassImpl(serializedClass, null);
- if (!serializedClass.hasNoSupertype) {
- libraryResynthesizer.delayedObjectSubclasses.add(classElement);
- }
} else {
classElement = new _DeferredClassElement(this, unit, serializedClass);
}
@@ -1753,12 +1736,6 @@ class _UnitResynthesizer {
classElement.hasBeenInferred = summaryResynthesizer.strongMode;
InterfaceTypeImpl correspondingType =
new InterfaceTypeImpl(handle ?? classElement);
- if (serializedClass.supertype != null) {
- classElement.supertype =
- buildType(serializedClass.supertype, classElement);
- } else if (!libraryResynthesizer.isCoreLibrary) {
- classElement.supertype = typeProvider.objectType;
- }
// TODO(scheglov) move to ClassElementImpl
correspondingType.typeArguments = classElement.typeParameterTypes;
classElement.type = correspondingType;
@@ -1870,7 +1847,6 @@ class _UnitResynthesizer {
new EnumElementImpl.forSerialized(serializedEnum, unit);
InterfaceType enumType = new InterfaceTypeImpl(classElement);
classElement.type = enumType;
- classElement.supertype = typeProvider.objectType;
ElementHolder memberHolder = new ElementHolder();
// Build the 'index' field.
FieldElementImpl indexField = new FieldElementImpl('index', -1);

Powered by Google App Engine
This is Rietveld 408576698