Index: pkg/front_end/lib/src/fasta/source/diet_listener.dart |
diff --git a/pkg/front_end/lib/src/fasta/source/diet_listener.dart b/pkg/front_end/lib/src/fasta/source/diet_listener.dart |
index 0fd97f655d43c98e407bc2c091f71e8cc326fb51..08b0fe62c9368ffb3d43bf831078e4f570a5bcb8 100644 |
--- a/pkg/front_end/lib/src/fasta/source/diet_listener.dart |
+++ b/pkg/front_end/lib/src/fasta/source/diet_listener.dart |
@@ -554,6 +554,15 @@ class DietListener extends StackListener { |
listener.finishFunction(metadataConstants, formals, asyncModifier, body); |
} |
+ /// Invokes the listener's [finishFields] method. |
+ /// |
+ /// This is a separate method so that it may be overridden by a derived class |
+ /// if more computation must be done before finishing the function. |
+ void listenerFinishFields(StackListener listener, Token startToken, |
+ Token metadata, bool isTopLevel) { |
+ listener.finishFields(); |
+ } |
+ |
void parseFunctionBody(StackListener listener, Token startToken, |
Token metadata, MemberKind kind) { |
Token token = startToken; |
@@ -584,8 +593,9 @@ class DietListener extends StackListener { |
} |
} |
- void parseFields( |
- StackListener listener, Token token, Token metadata, bool isTopLevel) { |
+ void parseFields(StackListener listener, Token startToken, Token metadata, |
+ bool isTopLevel) { |
+ Token token = startToken; |
Parser parser = new Parser(listener); |
if (isTopLevel) { |
// There's a slight asymmetry between [parseTopLevelMember] and |
@@ -595,6 +605,7 @@ class DietListener extends StackListener { |
} else { |
token = parser.parseMember(metadata ?? token); |
} |
+ listenerFinishFields(listener, startToken, metadata, isTopLevel); |
listener.checkEmpty(token.charOffset); |
} |