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

Unified Diff: pkg/analyzer/lib/src/dart/element/builder.dart

Issue 2038153003: Create ClassElement.type lazily in ClassElementImpl and EnumElementImpl. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 6 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/analyzer/lib/src/context/context.dart ('k') | pkg/analyzer/lib/src/dart/element/element.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/dart/element/builder.dart
diff --git a/pkg/analyzer/lib/src/dart/element/builder.dart b/pkg/analyzer/lib/src/dart/element/builder.dart
index 33fc906b292d15949b26cbeca4cad8fc8219dedb..e531a68c5a6c20efdf4808a33060e8f764322bbd 100644
--- a/pkg/analyzer/lib/src/dart/element/builder.dart
+++ b/pkg/analyzer/lib/src/dart/element/builder.dart
@@ -421,12 +421,7 @@ class ElementBuilder extends RecursiveAstVisitor<Object> {
ClassElementImpl element = new ClassElementImpl.forNode(className);
_setCodeRange(element, node);
element.metadata = _createElementAnnotations(node.metadata);
- List<TypeParameterElement> typeParameters = holder.typeParameters;
- List<DartType> typeArguments = _createTypeParameterTypes(typeParameters);
- InterfaceTypeImpl interfaceType = new InterfaceTypeImpl(element);
- interfaceType.typeArguments = typeArguments;
- element.type = interfaceType;
- element.typeParameters = typeParameters;
+ element.typeParameters = holder.typeParameters;
setElementDocumentationComment(element, node);
element.abstract = node.isAbstract;
element.accessors = holder.accessors;
@@ -473,12 +468,7 @@ class ElementBuilder extends RecursiveAstVisitor<Object> {
element.metadata = _createElementAnnotations(node.metadata);
element.abstract = node.abstractKeyword != null;
element.mixinApplication = true;
- List<TypeParameterElement> typeParameters = holder.typeParameters;
- element.typeParameters = typeParameters;
- List<DartType> typeArguments = _createTypeParameterTypes(typeParameters);
- InterfaceTypeImpl interfaceType = new InterfaceTypeImpl(element);
- interfaceType.typeArguments = typeArguments;
- element.type = interfaceType;
+ element.typeParameters = holder.typeParameters;
setElementDocumentationComment(element, node);
_currentHolder.addType(element);
className.staticElement = element;
@@ -621,8 +611,7 @@ class ElementBuilder extends RecursiveAstVisitor<Object> {
_setCodeRange(enumElement, node);
enumElement.metadata = _createElementAnnotations(node.metadata);
setElementDocumentationComment(enumElement, node);
- InterfaceTypeImpl enumType = new InterfaceTypeImpl(enumElement);
- enumElement.type = enumType;
+ InterfaceTypeImpl enumType = enumElement.type;
//
// Build the elements for the constants. These are minimal elements; the
// rest of the constant elements (and elements for other fields) must be
« no previous file with comments | « pkg/analyzer/lib/src/context/context.dart ('k') | pkg/analyzer/lib/src/dart/element/element.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698