Chromium Code Reviews| Index: runtime/vm/class_finalizer.cc |
| diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc |
| index c49794a57e510fd78c1c49814da310e8a9adc925..ee618f25f0f7e735294ed53d5cbcf0d55768dfa0 100644 |
| --- a/runtime/vm/class_finalizer.cc |
| +++ b/runtime/vm/class_finalizer.cc |
| @@ -491,7 +491,7 @@ void ClassFinalizer::ResolveType(const Class& cls, const AbstractType& type) { |
| void ClassFinalizer::FinalizeTypeParameters( |
| const Class& cls, |
| GrowableObjectArray* pending_types) { |
| - if (cls.IsMixinApplication()) { |
| + if (cls.IsAnonymousMixinApplication()) { |
| // Setup the type parameters of the mixin application and finalize the |
| // mixin type. |
| ApplyMixinType(cls, pending_types); |
| @@ -1708,7 +1708,7 @@ void ClassFinalizer::ApplyMixinAppAlias(const Class& mixin_app_class, |
| // to the super class. |
| Class& super_class = Class::Handle(isolate, super_type.type_class()); |
| ASSERT(mixin_app_class.SuperClass() == super_class.raw()); |
| - while (super_class.IsMixinApplication()) { |
| + while (super_class.IsAnonymousMixinApplication()) { |
|
rmacnak
2014/03/27 01:36:07
Do we have tests where the superclass is another m
|
| super_class = super_class.SuperClass(); |
| } |
| const intptr_t num_super_type_params = super_class.NumTypeParameters(); |
| @@ -1945,6 +1945,7 @@ void ClassFinalizer::CreateForwardingConstructors( |
| for (intptr_t n = 0; n < num_parameters; n++) { |
| clone.SetParameterTypeAt(n, dynamic_type); |
| } |
| + clone.SetForwardingTarget(func); |
| cloned_funcs.Add(clone); |
| } |
| } |
| @@ -2168,7 +2169,7 @@ void ClassFinalizer::FinalizeClass(const Class& cls) { |
| if (FLAG_trace_class_finalization) { |
| OS::Print("Finalize %s\n", cls.ToCString()); |
| } |
| - if (cls.IsMixinApplication()) { |
| + if (cls.IsAnonymousMixinApplication()) { |
| // Copy instance methods and fields from the mixin class. |
| // This has to happen before the check whether the methods of |
| // the class conflict with inherited methods. |
| @@ -2327,7 +2328,7 @@ bool ClassFinalizer::IsMixinCycleFree(const Class& cls, |
| visited->Add(cls.id()); |
| Class& super_class = Class::Handle(cls.raw()); |
| do { |
| - if (super_class.IsMixinApplication()) { |
| + if (super_class.IsAnonymousMixinApplication()) { |
| const Type& mixin_type = Type::Handle(super_class.mixin()); |
| ASSERT(!mixin_type.IsNull()); |
| ASSERT(mixin_type.HasResolvedTypeClass()); |