| Index: sdk/lib/_internal/compiler/implementation/scanner/listener.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/scanner/listener.dart b/sdk/lib/_internal/compiler/implementation/scanner/listener.dart
|
| index ad1a0e18174509e249ea1f762dedfb6a0305c21d..8f465b5d4485e81cc303a1e2bd2cf5f90e9c832d 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/scanner/listener.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/scanner/listener.dart
|
| @@ -163,6 +163,18 @@ class Listener {
|
| void endFunctionTypeAlias(Token typedefKeyword, Token endToken) {
|
| }
|
|
|
| + void beginMixinApplication(Token token) {
|
| + }
|
| +
|
| + void endMixinApplication(Token beginToken, Token endToken) {
|
| + }
|
| +
|
| + void beginNamedMixinApplication(Token token) {
|
| + }
|
| +
|
| + void endNamedMixinApplication(Token typedefKeyword, Token endToken) {
|
| + }
|
| +
|
| void beginHide(Token hideKeyword) {
|
| }
|
|
|
| @@ -175,6 +187,12 @@ class Listener {
|
| void endIdentifierList(int count) {
|
| }
|
|
|
| + void beginTypeList(Token token) {
|
| + }
|
| +
|
| + void endTypeList(int count) {
|
| + }
|
| +
|
| void beginIfStatement(Token token) {
|
| }
|
|
|
| @@ -702,6 +720,10 @@ class ElementListener extends Listener {
|
| pushNode(makeNodeList(count, null, null, ","));
|
| }
|
|
|
| + void endTypeList(int count) {
|
| + pushNode(makeNodeList(count, null, null, ","));
|
| + }
|
| +
|
| void endPart(Token partKeyword, Token semicolon) {
|
| StringNode uri = popLiteralString();
|
| addLibraryTag(new Part(partKeyword, uri));
|
| @@ -804,6 +826,26 @@ class ElementListener extends Listener {
|
| rejectBuiltInIdentifier(name);
|
| }
|
|
|
| + void endNamedMixinApplication(Token typedefKeyword, Token endToken) {
|
| + Node mixinApplication = popNode();
|
| + NodeList typeVariables = popNode();
|
| + Identifier name = popNode();
|
| + rejectBuiltInIdentifier(name);
|
| + // TODO(kasperl): Push an element corresponding to the named mixin
|
| + // application instead of rejecting this.
|
| + recoverableError('unsupported mixin application in typedef',
|
| + token: typedefKeyword,
|
| + node: mixinApplication);
|
| + }
|
| +
|
| + void endMixinApplication(Token beginToken, Token endToken) {
|
| + NodeList mixins = popNode();
|
| + TypeAnnotation superclass = popNode();
|
| + Modifiers modifiers = popNode();
|
| + pushNode(new MixinApplication(modifiers, superclass, mixins,
|
| + beginToken, endToken));
|
| + }
|
| +
|
| void handleVoidKeyword(Token token) {
|
| pushNode(new TypeAnnotation(new Identifier(token), null));
|
| }
|
|
|