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

Side by Side Diff: pkg/compiler/lib/src/common_elements.dart

Issue 2807593002: Use entities in impact transformers. (Closed)
Patch Set: Created 3 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 unified diff | Download patch
« no previous file with comments | « pkg/compiler/lib/src/common/codegen.dart ('k') | pkg/compiler/lib/src/compiler.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // TODO(sigmund): rename and move to common/elements.dart 5 // TODO(sigmund): rename and move to common/elements.dart
6 library dart2js.type_system; 6 library dart2js.type_system;
7 7
8 import 'common/names.dart' show Uris; 8 import 'common/names.dart' show Uris;
9 import 'elements/types.dart'; 9 import 'elements/types.dart';
10 import 'elements/entities.dart'; 10 import 'elements/entities.dart';
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 bool isStringOnlySupertype(ClassEntity element); 204 bool isStringOnlySupertype(ClassEntity element);
205 205
206 /// Returns `true` if [element] is a superclass of `List`. 206 /// Returns `true` if [element] is a superclass of `List`.
207 bool isListSupertype(ClassEntity element); 207 bool isListSupertype(ClassEntity element);
208 } 208 }
209 209
210 /// Interface for accessing libraries, classes and members. 210 /// Interface for accessing libraries, classes and members.
211 /// 211 ///
212 /// The _env makes private and injected members directly available and 212 /// The _env makes private and injected members directly available and
213 /// should therefore not be used to determine scopes. 213 /// should therefore not be used to determine scopes.
214 // TODO(johnniwinther): Split this into an element environment and a type query
215 // interface, the first should only be used during resolution and the latter in
216 // both resolution and codegen.
214 abstract class ElementEnvironment { 217 abstract class ElementEnvironment {
215 /// Returns the main library for the compilation. 218 /// Returns the main library for the compilation.
216 LibraryEntity get mainLibrary; 219 LibraryEntity get mainLibrary;
217 220
218 /// Returns the main method for the compilation. 221 /// Returns the main method for the compilation.
219 FunctionEntity get mainFunction; 222 FunctionEntity get mainFunction;
220 223
221 /// Lookup the library with the canonical [uri], fail if the library is 224 /// Lookup the library with the canonical [uri], fail if the library is
222 /// missing and [required]; 225 /// missing and [required];
223 LibraryEntity lookupLibrary(Uri uri, {bool required: false}); 226 LibraryEntity lookupLibrary(Uri uri, {bool required: false});
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 /// The upper bound on the [typeVariable]. If not explicitly declared, this is 291 /// The upper bound on the [typeVariable]. If not explicitly declared, this is
289 /// `Object`. 292 /// `Object`.
290 DartType getTypeVariableBound(TypeVariableEntity typeVariable); 293 DartType getTypeVariableBound(TypeVariableEntity typeVariable);
291 294
292 /// Returns `true` if [a] is a subtype of [b]. 295 /// Returns `true` if [a] is a subtype of [b].
293 bool isSubtype(DartType a, DartType b); 296 bool isSubtype(DartType a, DartType b);
294 297
295 /// Returns the type if [function]. 298 /// Returns the type if [function].
296 FunctionType getFunctionType(FunctionEntity function); 299 FunctionType getFunctionType(FunctionEntity function);
297 300
301 /// Returns the type of the [local] function.
302 FunctionType getLocalFunctionType(Local local);
303
304 /// Returns the unaliased type of [type].
305 ///
306 /// Use this during resolution to ensure that the alias has been computed.
307 // TODO(johnniwinther): Remove this when the resolver is removed.
308 DartType getUnaliasedType(DartType type);
309
298 /// Returns the [CallStructure] corresponding to calling [entity] with all 310 /// Returns the [CallStructure] corresponding to calling [entity] with all
299 /// arguments, both required and optional. 311 /// arguments, both required and optional.
300 CallStructure getCallStructure(FunctionEntity entity); 312 CallStructure getCallStructure(FunctionEntity entity);
301 313
302 /// Returns `true` if [member] a the synthetic getter `loadLibrary` injected 314 /// Returns `true` if [member] a the synthetic getter `loadLibrary` injected
303 /// on deferred libraries. 315 /// on deferred libraries.
304 bool isDeferredLoadLibraryGetter(MemberEntity member); 316 bool isDeferredLoadLibraryGetter(MemberEntity member);
305 } 317 }
306 318
307 class CommonElementsImpl implements CommonElements { 319 class CommonElementsImpl implements CommonElements {
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 } 584 }
573 585
574 @override 586 @override
575 InterfaceType streamType([DartType elementType]) { 587 InterfaceType streamType([DartType elementType]) {
576 if (elementType == null) { 588 if (elementType == null) {
577 return getRawType(streamClass); 589 return getRawType(streamClass);
578 } 590 }
579 return createInterfaceType(streamClass, [elementType]); 591 return createInterfaceType(streamClass, [elementType]);
580 } 592 }
581 } 593 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/common/codegen.dart ('k') | pkg/compiler/lib/src/compiler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698