Index: pkg/front_end/lib/src/fasta/parser/parser.dart |
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart |
index d3bcceae05a50ab1bdd7ec486e4fa479814c7fa3..365aa3bc9c02124138837225ae60f581e0643b39 100644 |
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart |
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart |
@@ -2406,6 +2406,13 @@ class Parser { |
? MemberKind.StaticMethod |
: MemberKind.NonStaticMethod); |
token = parseInitializersOpt(token); |
+ |
+ Token nativeToken; |
+ if (optional('native', token)) { |
+ nativeToken = token; |
+ token = parseNativeClause(nativeToken); |
ahe
2017/08/25 09:05:40
I think the problem is how functions bodies are be
|
+ } |
+ |
AsyncModifier savedAsyncModifier = asyncState; |
Token asyncToken = token; |
token = parseAsyncModifier(token); |
@@ -2416,10 +2423,14 @@ class Parser { |
token = parseRedirectingFactoryBody(token); |
} else { |
token = parseFunctionBody( |
- token, false, staticModifier == null || externalModifier != null); |
+ token, |
+ false, |
+ staticModifier == null || |
+ externalModifier != null || |
+ nativeToken != null); |
} |
asyncState = savedAsyncModifier; |
- listener.endMethod(getOrSet, start, token); |
+ listener.endMethod(getOrSet, start, nativeToken, token); |
return token.next; |
} |