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

Side by Side Diff: pkg/analyzer/lib/src/dart/element/handle.dart

Issue 2042473002: Remove _DeferredClassElement because ClassElementImpl is now lazy. (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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library analyzer.src.generated.element_handle; 5 library analyzer.src.generated.element_handle;
6 6
7 import 'package:analyzer/dart/ast/ast.dart'; 7 import 'package:analyzer/dart/ast/ast.dart';
8 import 'package:analyzer/dart/constant/value.dart'; 8 import 'package:analyzer/dart/constant/value.dart';
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/dart/element/type.dart'; 10 import 'package:analyzer/dart/element/type.dart';
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 @override 91 @override
92 InterfaceType get supertype => actualElement.supertype; 92 InterfaceType get supertype => actualElement.supertype;
93 93
94 @override 94 @override
95 InterfaceType get type => actualElement.type; 95 InterfaceType get type => actualElement.type;
96 96
97 @override 97 @override
98 List<TypeParameterElement> get typeParameters => actualElement.typeParameters; 98 List<TypeParameterElement> get typeParameters => actualElement.typeParameters;
99 99
100 @override 100 @override
101 ConstructorElement get unnamedConstructor { 101 ConstructorElement get unnamedConstructor => actualElement.unnamedConstructor;
102 ensureConstructorsReady();
103 return actualElement.unnamedConstructor;
104 }
105 102
106 @override 103 @override
107 NamedCompilationUnitMember computeNode() => super.computeNode(); 104 NamedCompilationUnitMember computeNode() => super.computeNode();
108 105
109 /** 106 @override
110 * Ensure that [ClassElement.accessors] and [ClassElement.fields] are ready 107 FieldElement getField(String fieldName) => actualElement.getField(fieldName);
111 * in [actualElement].
112 */
113 void ensureAccessorsReady() {}
114
115 /**
116 * The method is called by [ClassElementImpl.getImpl] before returning
117 * the [actualElement] as [ClassElementImpl]. At this moment we must ensure
118 * that [ClassElementImpl] is fully complete, we cannot continue filling it
119 * lazily.
120 */
121 void ensureActualElementComplete() {}
122
123 /**
124 * Ensure that [ClassElement.constructors] are ready in [actualElement].
125 */
126 void ensureConstructorsReady() {}
127
128 /**
129 * Ensure that [ClassElement.methods] are ready in [actualElement].
130 */
131 void ensureMethodsReady() {}
132 108
133 @override 109 @override
134 FieldElement getField(String fieldName) { 110 PropertyAccessorElement getGetter(String getterName) =>
135 ensureAccessorsReady(); 111 actualElement.getGetter(getterName);
136 return actualElement.getField(fieldName);
137 }
138 112
139 @override 113 @override
140 PropertyAccessorElement getGetter(String getterName) { 114 MethodElement getMethod(String methodName) =>
141 ensureAccessorsReady(); 115 actualElement.getMethod(methodName);
142 return actualElement.getGetter(getterName);
143 }
144 116
145 @override 117 @override
146 MethodElement getMethod(String methodName) { 118 ConstructorElement getNamedConstructor(String name) =>
147 ensureMethodsReady(); 119 actualElement.getNamedConstructor(name);
148 return actualElement.getMethod(methodName);
149 }
150 120
151 @override 121 @override
152 ConstructorElement getNamedConstructor(String name) { 122 PropertyAccessorElement getSetter(String setterName) =>
153 ensureConstructorsReady(); 123 actualElement.getSetter(setterName);
154 return actualElement.getNamedConstructor(name);
155 }
156
157 @override
158 PropertyAccessorElement getSetter(String setterName) {
159 ensureAccessorsReady();
160 return actualElement.getSetter(setterName);
161 }
162 124
163 @override 125 @override
164 bool isSuperConstructorAccessible(ConstructorElement constructor) => 126 bool isSuperConstructorAccessible(ConstructorElement constructor) =>
165 actualElement.isSuperConstructorAccessible(constructor); 127 actualElement.isSuperConstructorAccessible(constructor);
166 128
167 @override 129 @override
168 MethodElement lookUpConcreteMethod( 130 MethodElement lookUpConcreteMethod(
169 String methodName, LibraryElement library) { 131 String methodName, LibraryElement library) =>
170 ensureMethodsReady(); 132 actualElement.lookUpConcreteMethod(methodName, library);
171 return actualElement.lookUpConcreteMethod(methodName, library);
172 }
173 133
174 @override 134 @override
175 PropertyAccessorElement lookUpGetter( 135 PropertyAccessorElement lookUpGetter(
176 String getterName, LibraryElement library) => 136 String getterName, LibraryElement library) =>
177 actualElement.lookUpGetter(getterName, library); 137 actualElement.lookUpGetter(getterName, library);
178 138
179 @override 139 @override
180 PropertyAccessorElement lookUpInheritedConcreteGetter( 140 PropertyAccessorElement lookUpInheritedConcreteGetter(
181 String methodName, LibraryElement library) { 141 String methodName, LibraryElement library) =>
182 ensureAccessorsReady(); 142 actualElement.lookUpInheritedConcreteGetter(methodName, library);
183 return actualElement.lookUpInheritedConcreteGetter(methodName, library);
184 }
185 143
186 @override 144 @override
187 MethodElement lookUpInheritedConcreteMethod( 145 MethodElement lookUpInheritedConcreteMethod(
188 String methodName, LibraryElement library) { 146 String methodName, LibraryElement library) =>
189 ensureMethodsReady(); 147 actualElement.lookUpInheritedConcreteMethod(methodName, library);
190 return actualElement.lookUpInheritedConcreteMethod(methodName, library);
191 }
192 148
193 @override 149 @override
194 PropertyAccessorElement lookUpInheritedConcreteSetter( 150 PropertyAccessorElement lookUpInheritedConcreteSetter(
195 String methodName, LibraryElement library) { 151 String methodName, LibraryElement library) =>
196 ensureAccessorsReady(); 152 actualElement.lookUpInheritedConcreteSetter(methodName, library);
197 return actualElement.lookUpInheritedConcreteSetter(methodName, library);
198 }
199 153
200 @override 154 @override
201 MethodElement lookUpInheritedMethod( 155 MethodElement lookUpInheritedMethod(
202 String methodName, LibraryElement library) { 156 String methodName, LibraryElement library) {
203 ensureMethodsReady();
204 return actualElement.lookUpInheritedMethod(methodName, library); 157 return actualElement.lookUpInheritedMethod(methodName, library);
205 } 158 }
206 159
207 @override 160 @override
208 MethodElement lookUpMethod(String methodName, LibraryElement library) { 161 MethodElement lookUpMethod(String methodName, LibraryElement library) =>
209 ensureMethodsReady(); 162 actualElement.lookUpMethod(methodName, library);
210 return actualElement.lookUpMethod(methodName, library);
211 }
212 163
213 @override 164 @override
214 PropertyAccessorElement lookUpSetter( 165 PropertyAccessorElement lookUpSetter(
215 String setterName, LibraryElement library) { 166 String setterName, LibraryElement library) =>
216 ensureAccessorsReady(); 167 actualElement.lookUpSetter(setterName, library);
217 return actualElement.lookUpSetter(setterName, library);
218 }
219 } 168 }
220 169
221 /** 170 /**
222 * A handle to a [CompilationUnitElement]. 171 * A handle to a [CompilationUnitElement].
223 */ 172 */
224 class CompilationUnitElementHandle extends ElementHandle 173 class CompilationUnitElementHandle extends ElementHandle
225 implements CompilationUnitElement { 174 implements CompilationUnitElement {
226 /** 175 /**
227 * Initialize a newly created element handle to represent the element at the 176 * Initialize a newly created element handle to represent the element at the
228 * given [_location]. The [_resynthesizer] will be used to resynthesize the 177 * given [_location]. The [_resynthesizer] will be used to resynthesize the
(...skipping 932 matching lines...) Expand 10 before | Expand all | Expand 10 after
1161 1110
1162 @override 1111 @override
1163 bool get isStatic => actualElement.isStatic; 1112 bool get isStatic => actualElement.isStatic;
1164 1113
1165 @override 1114 @override
1166 DartType get type => actualElement.type; 1115 DartType get type => actualElement.type;
1167 1116
1168 @override 1117 @override
1169 DartObject computeConstantValue() => actualElement.computeConstantValue(); 1118 DartObject computeConstantValue() => actualElement.computeConstantValue();
1170 } 1119 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/dart/element/element.dart ('k') | pkg/analyzer/lib/src/summary/resynthesize.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698