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

Unified Diff: pkg/compiler/lib/src/kernel/element_builder.dart

Issue 2829033002: Rename KernelWorldBuilder to KernelElementBuilder (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/compiler/lib/src/kernel/native_class_resolver.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/kernel/element_builder.dart
diff --git a/pkg/compiler/lib/src/kernel/world_builder.dart b/pkg/compiler/lib/src/kernel/element_builder.dart
similarity index 90%
rename from pkg/compiler/lib/src/kernel/world_builder.dart
rename to pkg/compiler/lib/src/kernel/element_builder.dart
index f3548837b2fcaf79241650b8b6cad57855fd3f20..b6c58ecf3d41f6f1f2f43160c64cd341577f7af0 100644
--- a/pkg/compiler/lib/src/kernel/world_builder.dart
+++ b/pkg/compiler/lib/src/kernel/element_builder.dart
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-library dart2js.kernel.world_builder;
+library dart2js.kernel.element_builder;
import 'package:kernel/ast.dart' as ir;
@@ -31,10 +31,9 @@ import 'elements.dart';
part 'native_class_resolver.dart';
part 'no_such_method_resolver.dart';
-/// World builder used for creating elements and types corresponding to Kernel
+/// Element builder used for creating elements and types corresponding to Kernel
/// IR nodes.
-// TODO(johnniwinther): Implement [ResolutionWorldBuilder].
-class KernelWorldBuilder extends KernelElementAdapterMixin {
+class KernelElementBuilder extends KernelElementAdapterMixin {
Siggi Cherem (dart-lang) 2017/04/20 22:39:39 as we discuss in the meeting, I think we can drop
Johnni Winther 2017/04/24 15:24:01 Changed to KernelToElementMap
CommonElements _commonElements;
native.BehaviorBuilder _nativeBehaviorBuilder;
final DiagnosticReporter reporter;
@@ -42,15 +41,15 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
DartTypeConverter _typeConverter;
/// Library environment. Used for fast lookup.
- KEnv _env;
+ _KEnv _env;
/// List of library environments by `KLibrary.libraryIndex`. This is used for
/// fast lookup into library classes and members.
- List<KLibraryEnv> _libraryEnvs = <KLibraryEnv>[];
+ List<_KLibraryEnv> _libraryEnvs = <_KLibraryEnv>[];
/// List of class environments by `KClass.classIndex`. This is used for
/// fast lookup into class members.
- List<KClassEnv> _classEnvs = <KClassEnv>[];
+ List<_KClassEnv> _classEnvs = <_KClassEnv>[];
Map<ir.Library, KLibrary> _libraryMap = <ir.Library, KLibrary>{};
Map<ir.Class, KClass> _classMap = <ir.Class, KClass>{};
@@ -74,8 +73,8 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
Map<ir.TreeNode, KLocalFunction> _localFunctionMap =
<ir.TreeNode, KLocalFunction>{};
- KernelWorldBuilder(this.reporter, ir.Program program)
- : _env = new KEnv(program) {
+ KernelElementBuilder(this.reporter, ir.Program program)
+ : _env = new _KEnv(program) {
_elementEnvironment = new KernelElementEnvironment(this);
_commonElements = new CommonElements(_elementEnvironment);
ConstantEnvironment constants = new KernelConstantEnvironment(this);
@@ -106,11 +105,11 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
native.BehaviorBuilder get nativeBehaviorBuilder => _nativeBehaviorBuilder;
LibraryEntity lookupLibrary(Uri uri) {
- KLibraryEnv libraryEnv = _env.lookupLibrary(uri);
+ _KLibraryEnv libraryEnv = _env.lookupLibrary(uri);
return _getLibrary(libraryEnv.library, libraryEnv);
}
- KLibrary _getLibrary(ir.Library node, [KLibraryEnv libraryEnv]) {
+ KLibrary _getLibrary(ir.Library node, [_KLibraryEnv libraryEnv]) {
return _libraryMap.putIfAbsent(node, () {
Uri canonicalUri = node.importUri;
_libraryEnvs.add(libraryEnv ?? _env.lookupLibrary(canonicalUri));
@@ -126,14 +125,14 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
MemberEntity lookupLibraryMember(KLibrary library, String name,
{bool setter: false}) {
- KLibraryEnv libraryEnv = _libraryEnvs[library.libraryIndex];
+ _KLibraryEnv libraryEnv = _libraryEnvs[library.libraryIndex];
ir.Member member = libraryEnv.lookupMember(name, setter: setter);
return member != null ? getMember(member) : null;
}
ClassEntity lookupClass(KLibrary library, String name) {
- KLibraryEnv libraryEnv = _libraryEnvs[library.libraryIndex];
- KClassEnv classEnv = libraryEnv.lookupClass(name);
+ _KLibraryEnv libraryEnv = _libraryEnvs[library.libraryIndex];
+ _KClassEnv classEnv = libraryEnv.lookupClass(name);
if (classEnv != null) {
return _getClass(classEnv.cls, classEnv);
}
@@ -142,18 +141,18 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
MemberEntity lookupClassMember(KClass cls, String name,
{bool setter: false}) {
- KClassEnv classEnv = _classEnvs[cls.classIndex];
+ _KClassEnv classEnv = _classEnvs[cls.classIndex];
ir.Member member = classEnv.lookupMember(name, setter: setter);
return member != null ? getMember(member) : null;
}
ConstructorEntity lookupConstructor(KClass cls, String name) {
- KClassEnv classEnv = _classEnvs[cls.classIndex];
+ _KClassEnv classEnv = _classEnvs[cls.classIndex];
ir.Member member = classEnv.lookupConstructor(name);
return member != null ? getConstructor(member) : null;
}
- KClass _getClass(ir.Class node, [KClassEnv classEnv]) {
+ KClass _getClass(ir.Class node, [_KClassEnv classEnv]) {
return _classMap.putIfAbsent(node, () {
KLibrary library = _getLibrary(node.enclosingLibrary);
if (classEnv == null) {
@@ -353,7 +352,7 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
return list;
}
- void _ensureThisAndRawType(KClass cls, KClassEnv env) {
+ void _ensureThisAndRawType(KClass cls, _KClassEnv env) {
if (env.thisType == null) {
ir.Class node = env.cls;
// TODO(johnniwinther): Add the type argument to the list literal when we
@@ -378,18 +377,18 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
}
InterfaceType _getThisType(KClass cls) {
- KClassEnv env = _classEnvs[cls.classIndex];
+ _KClassEnv env = _classEnvs[cls.classIndex];
_ensureThisAndRawType(cls, env);
return env.thisType;
}
InterfaceType _getRawType(KClass cls) {
- KClassEnv env = _classEnvs[cls.classIndex];
+ _KClassEnv env = _classEnvs[cls.classIndex];
_ensureThisAndRawType(cls, env);
return env.rawType;
}
- void _ensureSupertypes(KClass cls, KClassEnv env) {
+ void _ensureSupertypes(KClass cls, _KClassEnv env) {
if (env.supertypes == null) {
_ensureThisAndRawType(cls, env);
@@ -401,7 +400,7 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
if (node == null) return null;
InterfaceType type = _typeConverter.visitSupertype(node);
KClass superclass = type.element;
- KClassEnv env = _classEnvs[superclass.classIndex];
+ _KClassEnv env = _classEnvs[superclass.classIndex];
_ensureSupertypes(superclass, env);
for (InterfaceType supertype in env.supertypes) {
supertypes.add(
@@ -419,13 +418,13 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
}
InterfaceType _getSuperType(KClass cls) {
- KClassEnv env = _classEnvs[cls.classIndex];
+ _KClassEnv env = _classEnvs[cls.classIndex];
_ensureSupertypes(cls, env);
return env.supertype;
}
void _forEachSupertype(KClass cls, void f(InterfaceType supertype)) {
- KClassEnv env = _classEnvs[cls.classIndex];
+ _KClassEnv env = _classEnvs[cls.classIndex];
_ensureSupertypes(cls, env);
env.supertypes.forEach(f);
}
@@ -528,19 +527,19 @@ class KernelWorldBuilder extends KernelElementAdapterMixin {
}
/// Environment for fast lookup of program libraries.
-class KEnv {
+class _KEnv {
final ir.Program program;
- Map<Uri, KLibraryEnv> _libraryMap;
+ Map<Uri, _KLibraryEnv> _libraryMap;
- KEnv(this.program);
+ _KEnv(this.program);
- /// Return the [KLibraryEnv] for the library with the canonical [uri].
- KLibraryEnv lookupLibrary(Uri uri) {
+ /// Return the [_KLibraryEnv] for the library with the canonical [uri].
+ _KLibraryEnv lookupLibrary(Uri uri) {
if (_libraryMap == null) {
- _libraryMap = <Uri, KLibraryEnv>{};
+ _libraryMap = <Uri, _KLibraryEnv>{};
for (ir.Library library in program.libraries) {
- _libraryMap[library.importUri] = new KLibraryEnv(library);
+ _libraryMap[library.importUri] = new _KLibraryEnv(library);
}
}
return _libraryMap[uri];
@@ -548,21 +547,20 @@ class KEnv {
}
/// Environment for fast lookup of library classes and members.
-// TODO(johnniwinther): Add member lookup.
-class KLibraryEnv {
+class _KLibraryEnv {
final ir.Library library;
- Map<String, KClassEnv> _classMap;
+ Map<String, _KClassEnv> _classMap;
Map<String, ir.Member> _memberMap;
- KLibraryEnv(this.library);
+ _KLibraryEnv(this.library);
- /// Return the [KClassEnv] for the class [name] in [library].
- KClassEnv lookupClass(String name) {
+ /// Return the [_KClassEnv] for the class [name] in [library].
+ _KClassEnv lookupClass(String name) {
if (_classMap == null) {
- _classMap = <String, KClassEnv>{};
+ _classMap = <String, _KClassEnv>{};
for (ir.Class cls in library.classes) {
- _classMap[cls.name] = new KClassEnv(cls);
+ _classMap[cls.name] = new _KClassEnv(cls);
}
}
return _classMap[name];
@@ -582,8 +580,7 @@ class KLibraryEnv {
}
/// Environment for fast lookup of class members.
-// TODO(johnniwinther): Add member lookup.
-class KClassEnv {
+class _KClassEnv {
final ir.Class cls;
InterfaceType thisType;
@@ -594,7 +591,7 @@ class KClassEnv {
Map<String, ir.Member> _constructorMap;
Map<String, ir.Member> _memberMap;
- KClassEnv(this.cls);
+ _KClassEnv(this.cls);
void _ensureMaps() {
if (_memberMap == null) {
@@ -628,30 +625,30 @@ class KClassEnv {
}
class KernelElementEnvironment implements ElementEnvironment {
- final KernelWorldBuilder worldBuilder;
+ final KernelElementBuilder elementBuilder;
- KernelElementEnvironment(this.worldBuilder);
+ KernelElementEnvironment(this.elementBuilder);
@override
DartType get dynamicType => const DynamicType();
@override
- LibraryEntity get mainLibrary => worldBuilder._mainLibrary;
+ LibraryEntity get mainLibrary => elementBuilder._mainLibrary;
@override
- FunctionEntity get mainFunction => worldBuilder._mainFunction;
+ FunctionEntity get mainFunction => elementBuilder._mainFunction;
@override
- Iterable<LibraryEntity> get libraries => worldBuilder._libraryMap.values;
+ Iterable<LibraryEntity> get libraries => elementBuilder._libraryMap.values;
@override
InterfaceType getThisType(ClassEntity cls) {
- return worldBuilder._getThisType(cls);
+ return elementBuilder._getThisType(cls);
}
@override
InterfaceType getRawType(ClassEntity cls) {
- return worldBuilder._getRawType(cls);
+ return elementBuilder._getRawType(cls);
}
@override
@@ -688,7 +685,7 @@ class KernelElementEnvironment implements ElementEnvironment {
@override
ConstructorEntity lookupConstructor(ClassEntity cls, String name,
{bool required: false}) {
- ConstructorEntity constructor = worldBuilder.lookupConstructor(cls, name);
+ ConstructorEntity constructor = elementBuilder.lookupConstructor(cls, name);
if (constructor == null && required) {
throw new SpannableAssertionFailure(
CURRENT_ELEMENT_SPANNABLE,
@@ -702,7 +699,7 @@ class KernelElementEnvironment implements ElementEnvironment {
MemberEntity lookupClassMember(ClassEntity cls, String name,
{bool setter: false, bool required: false}) {
MemberEntity member =
- worldBuilder.lookupClassMember(cls, name, setter: setter);
+ elementBuilder.lookupClassMember(cls, name, setter: setter);
if (member == null && required) {
throw new SpannableAssertionFailure(CURRENT_ELEMENT_SPANNABLE,
"The member '$name' was not found in ${cls.name}.");
@@ -712,12 +709,12 @@ class KernelElementEnvironment implements ElementEnvironment {
@override
ClassEntity getSuperClass(ClassEntity cls) {
- return worldBuilder._getSuperType(cls)?.element;
+ return elementBuilder._getSuperType(cls)?.element;
}
@override
void forEachSupertype(ClassEntity cls, void f(InterfaceType supertype)) {
- worldBuilder._forEachSupertype(cls, f);
+ elementBuilder._forEachSupertype(cls, f);
}
@override
@@ -735,7 +732,7 @@ class KernelElementEnvironment implements ElementEnvironment {
MemberEntity lookupLibraryMember(LibraryEntity library, String name,
{bool setter: false, bool required: false}) {
MemberEntity member =
- worldBuilder.lookupLibraryMember(library, name, setter: setter);
+ elementBuilder.lookupLibraryMember(library, name, setter: setter);
if (member == null && required) {
throw new SpannableAssertionFailure(CURRENT_ELEMENT_SPANNABLE,
"The member '${name}' was not found in library '${library.name}'.");
@@ -746,7 +743,7 @@ class KernelElementEnvironment implements ElementEnvironment {
@override
ClassEntity lookupClass(LibraryEntity library, String name,
{bool required: false}) {
- ClassEntity cls = worldBuilder.lookupClass(library, name);
+ ClassEntity cls = elementBuilder.lookupClass(library, name);
if (cls == null && required) {
throw new SpannableAssertionFailure(CURRENT_ELEMENT_SPANNABLE,
"The class '$name' was not found in library '${library.name}'.");
@@ -756,7 +753,7 @@ class KernelElementEnvironment implements ElementEnvironment {
@override
LibraryEntity lookupLibrary(Uri uri, {bool required: false}) {
- LibraryEntity library = worldBuilder.lookupLibrary(uri);
+ LibraryEntity library = elementBuilder.lookupLibrary(uri);
if (library == null && required) {
throw new SpannableAssertionFailure(
CURRENT_ELEMENT_SPANNABLE, "The library '$uri' was not found.");
@@ -766,7 +763,7 @@ class KernelElementEnvironment implements ElementEnvironment {
@override
CallStructure getCallStructure(KFunction function) {
- ir.Member member = worldBuilder._memberList[function.memberIndex];
+ ir.Member member = elementBuilder._memberList[function.memberIndex];
ir.FunctionNode functionNode;
if (member is ir.Procedure) {
functionNode = member.function;
@@ -791,7 +788,7 @@ class KernelElementEnvironment implements ElementEnvironment {
/// Visitor that converts kernel dart types into [DartType].
class DartTypeConverter extends ir.DartTypeVisitor<DartType> {
- final KernelWorldBuilder elementAdapter;
+ final KernelElementBuilder elementAdapter;
bool topLevel = true;
DartTypeConverter(this.elementAdapter);
@@ -894,7 +891,7 @@ class KernelBehaviorBuilder extends native.BehaviorBuilder {
/// Constant environment mapping [ConstantExpression]s to [ConstantValue]s using
/// [_EvaluationEnvironment] for the evaluation.
class KernelConstantEnvironment implements ConstantEnvironment {
- KernelWorldBuilder _worldBuilder;
+ KernelElementBuilder _worldBuilder;
Map<ConstantExpression, ConstantValue> _valueMap =
<ConstantExpression, ConstantValue>{};
@@ -926,7 +923,7 @@ class KernelConstantEnvironment implements ConstantEnvironment {
/// Evaluation environment used for computing [ConstantValue]s for
/// kernel based [ConstantExpression]s.
class _EvaluationEnvironment implements Environment {
- final KernelWorldBuilder _worldBuilder;
+ final KernelElementBuilder _worldBuilder;
_EvaluationEnvironment(this._worldBuilder);
@@ -966,7 +963,7 @@ class _EvaluationEnvironment implements Environment {
// Interface for testing equivalence of Kernel-based entities.
class WorldDeconstructionForTesting {
- final KernelWorldBuilder builder;
+ final KernelElementBuilder builder;
WorldDeconstructionForTesting(this.builder);
@@ -975,7 +972,7 @@ class WorldDeconstructionForTesting {
}
KLibrary getLibraryForClass(KClass cls) {
- KClassEnv env = builder._classEnvs[cls.classIndex];
+ _KClassEnv env = builder._classEnvs[cls.classIndex];
return builder.getLibrary(env.cls.enclosingLibrary);
}
@@ -999,14 +996,14 @@ class WorldDeconstructionForTesting {
_getLibrary(field, builder._fieldMap);
KClass getSuperclassForClass(KClass cls) {
- KClassEnv env = builder._classEnvs[cls.classIndex];
+ _KClassEnv env = builder._classEnvs[cls.classIndex];
ir.Supertype supertype = env.cls.supertype;
if (supertype == null) return null;
return builder.getClass(supertype.classNode);
}
InterfaceType getMixinTypeForClass(KClass cls) {
- KClassEnv env = builder._classEnvs[cls.classIndex];
+ _KClassEnv env = builder._classEnvs[cls.classIndex];
ir.Supertype mixedInType = env.cls.mixedInType;
if (mixedInType == null) return null;
return builder.createInterfaceType(
« no previous file with comments | « no previous file | pkg/compiler/lib/src/kernel/native_class_resolver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698