| 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;
|
|
|
|
|