Chromium Code Reviews| Index: runtime/vm/parser.cc |
| diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc |
| index 89d77315d43f4525208c0a4d2fd981218f808b5e..6cb8e604809b799d0cab893f4a28c07be3c13a8a 100644 |
| --- a/runtime/vm/parser.cc |
| +++ b/runtime/vm/parser.cc |
| @@ -3772,6 +3772,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); |
| @@ -3800,6 +3801,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 |
| mixin_application.set_super_type(type); |
| mixin_application.set_is_synthesized_class(); |
| @@ -3807,6 +3810,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 |
|
rmacnak
2013/08/21 23:24:17
Is this still true with the extra class?
|
| + // ParseInterfaceList should be able to add to the list. |
| ParseInterfaceList(mixin_application); |
| } |
| ExpectSemicolon(); |