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

Unified Diff: runtime/vm/kernel_to_il.cc

Issue 2762213002: Use canonical names for some name-based lookup. (Closed)
Patch Set: Do not use the import URI to name libraries Created 3 years, 9 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 | « runtime/vm/kernel_to_il.h ('k') | runtime/vm/symbols.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/kernel_to_il.cc
diff --git a/runtime/vm/kernel_to_il.cc b/runtime/vm/kernel_to_il.cc
index e4204fd6539343ecb732169d47736cbaf6724221..2b12bcfa6416522a11f283b17c8e3f684e5edf50 100644
--- a/runtime/vm/kernel_to_il.cc
+++ b/runtime/vm/kernel_to_il.cc
@@ -1068,8 +1068,7 @@ dart::String& TranslationHelper::DartSymbol(String* content) const {
const dart::String& TranslationHelper::DartClassName(
- kernel::Class* kernel_klass) {
- ASSERT(kernel_klass->IsNormalClass());
+ CanonicalName* kernel_klass) {
dart::String& name = DartString(kernel_klass->name());
return ManglePrivateName(kernel_klass->parent(), &name);
}
@@ -1112,7 +1111,7 @@ const dart::String& TranslationHelper::DartSetterName(Name* kernel_name) {
dart::String& name = dart::String::ZoneHandle(
Z, dart::String::FromUTF8(content->buffer(), content->size() - skip,
allocation_space_));
- ManglePrivateName(kernel_name->library(), &name, false);
+ ManglePrivateName(kernel_name->library_reference(), &name, false);
name = dart::Field::SetterSymbol(name);
return name;
}
@@ -1120,7 +1119,7 @@ const dart::String& TranslationHelper::DartSetterName(Name* kernel_name) {
const dart::String& TranslationHelper::DartGetterName(Name* kernel_name) {
dart::String& name = DartString(kernel_name->string());
- ManglePrivateName(kernel_name->library(), &name, false);
+ ManglePrivateName(kernel_name->library_reference(), &name, false);
name = dart::Field::GetterSymbol(name);
return name;
}
@@ -1128,7 +1127,7 @@ const dart::String& TranslationHelper::DartGetterName(Name* kernel_name) {
const dart::String& TranslationHelper::DartFieldName(Name* kernel_name) {
dart::String& name = DartString(kernel_name->string());
- return ManglePrivateName(kernel_name->library(), &name);
+ return ManglePrivateName(kernel_name->library_reference(), &name);
}
@@ -1143,7 +1142,7 @@ const dart::String& TranslationHelper::DartInitializerName(Name* kernel_name) {
const dart::String& TranslationHelper::DartMethodName(Name* kernel_name) {
dart::String& name = DartString(kernel_name->string());
- return ManglePrivateName(kernel_name->library(), &name);
+ return ManglePrivateName(kernel_name->library_reference(), &name);
}
@@ -1151,7 +1150,7 @@ const dart::String& TranslationHelper::DartFactoryName(Class* klass,
Name* method_name) {
// [DartMethodName] will mangle the name.
GrowableHandlePtrArray<const dart::String> pieces(Z, 3);
- pieces.Add(DartClassName(klass));
+ pieces.Add(DartClassName(klass->canonical_name()));
pieces.Add(Symbols::Dot());
pieces.Add(DartMethodName(method_name));
return dart::String::ZoneHandle(
@@ -1160,8 +1159,8 @@ const dart::String& TranslationHelper::DartFactoryName(Class* klass,
dart::RawLibrary* TranslationHelper::LookupLibraryByKernelLibrary(
- Library* kernel_library) {
- const dart::String& library_name = DartSymbol(kernel_library->import_uri());
+ CanonicalName* kernel_library) {
+ const dart::String& library_name = DartSymbol(kernel_library->name());
ASSERT(!library_name.IsNull());
dart::RawLibrary* library =
dart::Library::LookupLibrary(thread_, library_name);
@@ -1171,11 +1170,11 @@ dart::RawLibrary* TranslationHelper::LookupLibraryByKernelLibrary(
dart::RawClass* TranslationHelper::LookupClassByKernelClass(
- Class* kernel_klass) {
+ CanonicalName* kernel_klass) {
dart::RawClass* klass = NULL;
const dart::String& class_name = DartClassName(kernel_klass);
- Library* kernel_library = Library::Cast(kernel_klass->parent());
+ CanonicalName* kernel_library = kernel_klass->parent();
dart::Library& library =
dart::Library::Handle(Z, LookupLibraryByKernelLibrary(kernel_library));
klass = library.LookupClassAllowPrivate(class_name);
@@ -1191,11 +1190,11 @@ dart::RawField* TranslationHelper::LookupFieldByKernelField(
dart::Class& klass = dart::Class::Handle(Z);
if (node->IsClass()) {
- klass = LookupClassByKernelClass(Class::Cast(node));
+ klass = LookupClassByKernelClass(Class::Cast(node)->canonical_name());
} else {
ASSERT(node->IsLibrary());
dart::Library& library = dart::Library::Handle(
- Z, LookupLibraryByKernelLibrary(Library::Cast(node)));
+ Z, LookupLibraryByKernelLibrary(Library::Cast(node)->canonical_name()));
klass = library.toplevel_class();
}
dart::RawField* field =
@@ -1214,8 +1213,8 @@ dart::RawFunction* TranslationHelper::LookupStaticMethodByKernelProcedure(
// static method).
TreeNode* parent = procedure->parent();
if (parent->IsClass()) {
- dart::Class& klass =
- dart::Class::Handle(Z, LookupClassByKernelClass(Class::Cast(parent)));
+ dart::Class& klass = dart::Class::Handle(
+ Z, LookupClassByKernelClass(Class::Cast(parent)->canonical_name()));
dart::RawFunction* raw_function =
klass.LookupFunctionAllowPrivate(procedure_name);
ASSERT(raw_function != Object::null());
@@ -1231,7 +1230,8 @@ dart::RawFunction* TranslationHelper::LookupStaticMethodByKernelProcedure(
} else {
ASSERT(parent->IsLibrary());
dart::Library& library = dart::Library::Handle(
- Z, LookupLibraryByKernelLibrary(Library::Cast(parent)));
+ Z,
+ LookupLibraryByKernelLibrary(Library::Cast(parent)->canonical_name()));
dart::RawFunction* function =
library.LookupFunctionAllowPrivate(procedure_name);
ASSERT(function != Object::null());
@@ -1243,8 +1243,8 @@ dart::RawFunction* TranslationHelper::LookupStaticMethodByKernelProcedure(
dart::RawFunction* TranslationHelper::LookupConstructorByKernelConstructor(
Constructor* constructor) {
Class* kernel_klass = Class::Cast(constructor->parent());
- dart::Class& klass =
- dart::Class::Handle(Z, LookupClassByKernelClass(kernel_klass));
+ dart::Class& klass = dart::Class::Handle(
+ Z, LookupClassByKernelClass(kernel_klass->canonical_name()));
return LookupConstructorByKernelConstructor(klass, constructor);
}
@@ -1304,9 +1304,10 @@ void TranslationHelper::ReportError(const Error& prev_error,
}
-dart::String& TranslationHelper::ManglePrivateName(Library* kernel_library,
- dart::String* name_to_modify,
- bool symbolize) {
+dart::String& TranslationHelper::ManglePrivateName(
+ CanonicalName* kernel_library,
+ dart::String* name_to_modify,
+ bool symbolize) {
if (name_to_modify->Length() >= 1 && name_to_modify->CharAt(0) == '_') {
const dart::Library& library =
dart::Library::Handle(Z, LookupLibraryByKernelLibrary(kernel_library));
@@ -2839,8 +2840,8 @@ dart::RawFunction* FlowGraphBuilder::LookupMethodByMember(
Member* target,
const dart::String& method_name) {
Class* kernel_klass = Class::Cast(target->parent());
- dart::Class& klass =
- dart::Class::Handle(Z, H.LookupClassByKernelClass(kernel_klass));
+ dart::Class& klass = dart::Class::Handle(
+ Z, H.LookupClassByKernelClass(kernel_klass->canonical_name()));
dart::RawFunction* function = klass.LookupFunctionAllowPrivate(method_name);
ASSERT(function != Object::null());
@@ -4472,8 +4473,8 @@ void DartTypeTranslator::VisitInterfaceType(InterfaceType* node) {
node->type_arguments().raw_array(), node->type_arguments().length());
- dart::Object& klass =
- dart::Object::Handle(Z, H.LookupClassByKernelClass(node->klass()));
+ dart::Object& klass = dart::Object::Handle(
+ Z, H.LookupClassByKernelClass(node->class_reference()));
result_ = Type::New(klass, type_arguments, TokenPosition::kNoSource);
if (finalize_) {
ASSERT(active_class_->klass != NULL);
@@ -4911,8 +4912,8 @@ void FlowGraphBuilder::VisitConstructorInvocation(ConstructorInvocation* node) {
Class* kernel_class = Class::Cast(node->target()->parent());
- dart::Class& klass =
- dart::Class::ZoneHandle(Z, H.LookupClassByKernelClass(kernel_class));
+ dart::Class& klass = dart::Class::ZoneHandle(
+ Z, H.LookupClassByKernelClass(kernel_class->canonical_name()));
Fragment instructions;
« no previous file with comments | « runtime/vm/kernel_to_il.h ('k') | runtime/vm/symbols.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698