Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Unified Diff: pkg/front_end/lib/src/fasta/parser/listener.dart

Issue 2567133002: Add support for the new function-type syntax. (Closed)
Patch Set: Adjust fasta-analyzer. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/lib/src/fasta/parser/listener.dart
diff --git a/pkg/front_end/lib/src/fasta/parser/listener.dart b/pkg/front_end/lib/src/fasta/parser/listener.dart
index 5a400b94e4a5d7804b90b70da31aa87dd313f445..df25650225671cfd3f4840b8f2a173d6b1926f3a 100644
--- a/pkg/front_end/lib/src/fasta/parser/listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/listener.dart
@@ -233,13 +233,22 @@ class Listener {
void beginFunctionTypeAlias(Token token) {}
- /// Handle the end of a typedef declaration. Substructures:
+ /// Handle the end of a typedef declaration.
+ ///
+ /// If [equals] is null, then we have the following substructures:
/// - Metadata
/// - Return type
/// - Name (identifier)
- /// - Type variables
+ /// - Template variables (type variables to the template)
/// - Formal parameters
- void endFunctionTypeAlias(Token typedefKeyword, Token endToken) {
+ ///
+ /// If [equals] is not null, then the have the following substructures:
+ /// - Metadata
+ /// - Name (identifier)
+ /// - Template variables (type variables to the template)
+ /// - Type (FunctionTypeAnnotation)
+ void endFunctionTypeAlias(
+ Token typedefKeyword, Token equals, Token endToken) {
logEvent("FunctionTypeAlias");
}
@@ -263,7 +272,7 @@ class Listener {
/// - mixin application
/// - implemented types (TypeList)
///
- /// TODO(paulberry,ahe): it seems incosistent that for a named mixin
+ /// TODO(paulberry,ahe): it seems inconsistent that for a named mixin
/// application, the implemented types are a TypeList, whereas for a class
/// declaration, each implemented type is listed separately on the stack, and
/// the number of implemented types is passed as a parameter.
@@ -634,10 +643,18 @@ class Listener {
logEvent("TryStatement");
}
- void endType(Token beginToken, Token endToken) {
+ void handleType(Token beginToken, Token endToken) {
logEvent("Type");
}
+ void handleNoName(Token token) {
+ logEvent("NoName");
+ }
+
+ void handleFunctionType(Token functionToken, Token endToken) {
+ logEvent("FunctionType");
+ }
+
void beginTypeArguments(Token token) {}
void endTypeArguments(int count, Token beginToken, Token endToken) {

Powered by Google App Engine
This is Rietveld 408576698