Chromium Code Reviews| Index: runtime/vm/kernel_reader.cc | 
| diff --git a/runtime/vm/kernel_reader.cc b/runtime/vm/kernel_reader.cc | 
| index d8b7507b6ce6fd1fbf066234a042db9d44169b65..f13170c852a45ffcfc70acb41ca1355b94aa5446 100644 | 
| --- a/runtime/vm/kernel_reader.cc | 
| +++ b/runtime/vm/kernel_reader.cc | 
| @@ -134,10 +134,8 @@ Object& KernelReader::ReadProgram() { | 
| } | 
| if (ClassFinalizer::ProcessPendingClasses(/*from_kernel=*/true)) { | 
| - Procedure* main = program_->main_method(); | 
| - Library* kernel_main_library = Library::Cast(main->parent()); | 
| - dart::Library& library = | 
| - LookupLibrary(kernel_main_library->canonical_name()); | 
| + CanonicalName* main = program_->main_method(); | 
| + dart::Library& library = LookupLibrary(main->Enclosing()); | 
| 
 
Kevin Millikin (Google)
2017/03/29 11:50:30
Maybe 'EnclosingName' because otherwise this reads
 
 | 
| // Sanity check that we can find the main entrypoint. | 
| Object& main_obj = Object::Handle( | 
| @@ -360,7 +358,8 @@ dart::Class& KernelReader::ReadClass(const dart::Library& library, | 
| ActiveFunctionScope active_function_scope(&active_class_, | 
| kernel_constructor->function()); | 
| - const dart::String& name = H.DartConstructorName(kernel_constructor); | 
| + const dart::String& name = | 
| + H.DartConstructorName(kernel_constructor->canonical_name()); | 
| Function& function = dart::Function::ZoneHandle( | 
| Z, dart::Function::New(name, RawFunction::kConstructor, | 
| false, // is_static | 
| @@ -414,7 +413,8 @@ void KernelReader::ReadProcedure(const dart::Library& library, | 
| ActiveFunctionScope active_function_scope(&active_class_, | 
| kernel_procedure->function()); | 
| - const dart::String& name = H.DartProcedureName(kernel_procedure); | 
| + const dart::String& name = | 
| + H.DartProcedureName(kernel_procedure->canonical_name()); | 
| bool is_method = kernel_klass != NULL && !kernel_procedure->IsStatic(); | 
| bool is_abstract = kernel_procedure->IsAbstract(); | 
| bool is_external = kernel_procedure->IsExternal(); | 
| @@ -428,16 +428,18 @@ void KernelReader::ReadProcedure(const dart::Library& library, | 
| if (!annotation->IsConstructorInvocation()) continue; | 
| ConstructorInvocation* invocation = | 
| ConstructorInvocation::Cast(annotation); | 
| - Class* annotation_class = Class::Cast(invocation->target()->parent()); | 
| + CanonicalName* annotation_class = invocation->target()->Enclosing(); | 
| + ASSERT(annotation_class->IsClass()); | 
| String* class_name = annotation_class->name(); | 
| // Just compare by name, do not generate the annotation class. | 
| int length = sizeof("ExternalName") - 1; | 
| if (class_name->size() != length) continue; | 
| if (memcmp(class_name->buffer(), "ExternalName", length) != 0) continue; | 
| + ASSERT(annotation_class->parent()->IsLibrary()); | 
| String* library_name = annotation_class->parent()->name(); | 
| - length = sizeof("dart._internal") - 1; | 
| + length = sizeof("dart:_internal") - 1; | 
| if (library_name->size() != length) continue; | 
| - if (memcmp(library_name->buffer(), "dart._internal", length) != 0) { | 
| + if (memcmp(library_name->buffer(), "dart:_internal", length) != 0) { | 
| continue; | 
| } | 
| @@ -493,8 +495,9 @@ void KernelReader::ReadProcedure(const dart::Library& library, | 
| if (kernel_klass == NULL) { | 
| library.AddObject(function, name); | 
| - ASSERT(!Object::Handle(Z, library.LookupObjectAllowPrivate( | 
| - H.DartProcedureName(kernel_procedure))) | 
| + ASSERT(!Object::Handle( | 
| + Z, library.LookupObjectAllowPrivate( | 
| + H.DartProcedureName(kernel_procedure->canonical_name()))) | 
| .IsNull()); | 
| } | 
| if (FLAG_enable_mirrors) { | 
| @@ -629,7 +632,8 @@ void KernelReader::GenerateFieldAccessors(const dart::Class& klass, | 
| } | 
| } | 
| - const dart::String& getter_name = H.DartGetterName(kernel_field->name()); | 
| + const dart::String& getter_name = | 
| + H.DartGetterName(kernel_field->canonical_name()); | 
| const Object& script_class = | 
| ClassForScriptAt(klass, kernel_field->source_uri_index()); | 
| Function& getter = Function::ZoneHandle( | 
| @@ -659,7 +663,8 @@ void KernelReader::GenerateFieldAccessors(const dart::Class& klass, | 
| if (!kernel_field->IsStatic() && !kernel_field->IsFinal()) { | 
| // Only static fields can be const. | 
| ASSERT(!kernel_field->IsConst()); | 
| - const dart::String& setter_name = H.DartSetterName(kernel_field->name()); | 
| + const dart::String& setter_name = | 
| + H.DartSetterName(kernel_field->canonical_name()); | 
| Function& setter = Function::ZoneHandle( | 
| Z, Function::New(setter_name, RawFunction::kImplicitSetter, | 
| false, // is_static |