Chromium Code Reviews| Index: runtime/vm/parser.cc |
| diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc |
| index 9815cea1b52f9ef9327b2ae394cc985a119337e5..4097af1752d6248279cfc9d6a091e4730843d226 100644 |
| --- a/runtime/vm/parser.cc |
| +++ b/runtime/vm/parser.cc |
| @@ -3812,6 +3812,7 @@ void Parser::ParseMixinTypedef(const GrowableObjectArray& pending_classes) { |
| } |
| const Class& mixin_application = |
| Class::Handle(Class::New(class_name, script_, classname_pos)); |
| + mixin_application.set_is_mixin_typedef(); |
| library_.AddClass(mixin_application); |
| set_current_class(mixin_application); |
| ParseTypeParameters(mixin_application); |
| @@ -3840,6 +3841,8 @@ void Parser::ParseMixinTypedef(const GrowableObjectArray& pending_classes) { |
| // TODO(hausner): treat the mixin application as an alias, not as a base |
| // class whose super class is the mixin application! |
| + // regis/rmacnak: This is difficult because of issues involving subsitution of |
| + // type parameters |
|
siva
2013/08/26 04:30:27
Can an issue be opened for this and the TODO chang
rmacnak
2013/08/26 18:24:37
Done.
|
| mixin_application.set_super_type(type); |
| mixin_application.set_is_synthesized_class(); |
| @@ -3847,6 +3850,8 @@ void Parser::ParseMixinTypedef(const GrowableObjectArray& pending_classes) { |
| // too early to call 'AddImplicitConstructor(mixin_application)' here, |
| // because this class should be lazily compiled. |
| if (CurrentToken() == Token::kIMPLEMENTS) { |
| + // At this point, the mixin_application alias already has an interface, but |
| + // ParseInterfaceList should be able to add to the list. |
| ParseInterfaceList(mixin_application); |
| } |
| ExpectSemicolon(); |