Index: pkg/compiler/lib/src/tree/nodes.dart |
diff --git a/pkg/compiler/lib/src/tree/nodes.dart b/pkg/compiler/lib/src/tree/nodes.dart |
index 1e5f9ddbdd41e6e4b2cf65bb0957ce6282f35458..c392d77f166b85cf3f83ef424404d03f109cc753 100644 |
--- a/pkg/compiler/lib/src/tree/nodes.dart |
+++ b/pkg/compiler/lib/src/tree/nodes.dart |
@@ -511,8 +511,6 @@ class MixinApplication extends Node { |
Token getEndToken() => mixins.getEndToken(); |
} |
-// TODO(kasperl): Let this share some structure with the typedef for function |
-// type aliases? |
class NamedMixinApplication extends Node implements MixinApplication { |
final Identifier name; |
final NodeList typeParameters; |
@@ -2854,6 +2852,8 @@ class Combinator extends Node { |
} |
class Typedef extends Node { |
+ final bool isNewSyntax; |
Siggi Cherem (dart-lang)
2016/12/12 23:20:40
I'd avoid terms like `new` and `old`, since in a f
|
+ |
final TypeAnnotation returnType; |
final Identifier name; |
final NodeList typeParameters; |
@@ -2862,8 +2862,8 @@ class Typedef extends Node { |
final Token typedefKeyword; |
final Token endToken; |
- Typedef(this.returnType, this.name, this.typeParameters, this.formals, |
- this.typedefKeyword, this.endToken); |
+ Typedef(this.isNewSyntax, this.returnType, this.name, this.typeParameters, |
+ this.formals, this.typedefKeyword, this.endToken); |
Typedef asTypedef() => this; |
@@ -2890,6 +2890,42 @@ class Typedef extends Node { |
Token getEndToken() => endToken; |
} |
+// TODO(floitsch): find a better name. "FunctionType" is already taken by |
Siggi Cherem (dart-lang)
2016/12/12 23:20:40
how about FunctionTypeDeclaration ?
|
+// dart_types.dart. (We could use prefixes, but feels annoying.) |
+class NewFunctionType extends Node { |
+ final TypeAnnotation returnType; |
+ final NodeList typeParameters; |
+ final NodeList formals; |
+ |
+ NewFunctionType(this.returnType, this.typeParameters, this.formals); |
+ |
+ NewFunctionType asFunctionType() => this; |
+ |
+ accept(Visitor visitor) { |
+ throw new UnsupportedError("FunctionTypeVisit"); |
+ } |
+ |
+ accept1(Visitor1 visitor, arg) { |
+ throw new UnsupportedError("FunctionTypeVisit"); |
+ } |
+ |
+ visitChildren(Visitor visitor) { |
+ if (returnType != null) returnType.accept(visitor); |
+ if (typeParameters != null) typeParameters.accept(visitor); |
+ formals.accept(visitor); |
+ } |
+ |
+ visitChildren1(Visitor1 visitor, arg) { |
+ if (returnType != null) returnType.accept1(visitor, arg); |
+ if (typeParameters != null) typeParameters.accept1(visitor, arg); |
+ formals.accept1(visitor, arg); |
+ } |
+ |
+ Token getBeginToken() => returnType.getBeginToken(); |
+ |
+ Token getEndToken() => formals.getEndToken(); |
+} |
+ |
class TryStatement extends Statement { |
final Block tryBlock; |
final NodeList catchBlocks; |
@@ -3134,6 +3170,7 @@ class ErrorNode extends Node |
get type => null; |
// Typedef. |
+ get isNewSyntax => null; |
get typeParameters => null; |
get formals => null; |
get typedefKeyword => null; |