@@ -24,7 +24,7 @@ import 'package:_fe_analyzer_shared/src/parser/value_kind.dart';
2424import 'package:_fe_analyzer_shared/src/scanner/scanner.dart' show Token;
2525
2626import 'package:kernel/ast.dart'
27- show InvalidType, Nullability, ProcedureKind, Variance;
27+ show AsyncMarker, InvalidType, Nullability, ProcedureKind, Variance;
2828
2929import '../builder/constructor_reference_builder.dart' ;
3030import '../builder/enum_builder.dart' ;
@@ -797,6 +797,7 @@ class OutlineBuilder extends StackListenerImpl {
797797 void endTopLevelMethod (Token beginToken, Token getOrSet, Token endToken) {
798798 debugEvent ("endTopLevelMethod" );
799799 MethodBody kind = pop ();
800+ AsyncMarker asyncModifier = pop ();
800801 List <FormalParameterBuilder > formals = pop ();
801802 int formalsOffset = pop ();
802803 List <TypeVariableBuilder > typeVariables = pop ();
@@ -841,6 +842,7 @@ class OutlineBuilder extends StackListenerImpl {
841842 formalsOffset,
842843 endToken.charOffset,
843844 nativeMethodName,
845+ asyncModifier,
844846 isTopLevel: true );
845847 nativeMethodName = null ;
846848 }
@@ -973,6 +975,7 @@ class OutlineBuilder extends StackListenerImpl {
973975 pop ();
974976 }
975977 assert (checkState (beginToken, [
978+ ValueKinds .AsyncModifier ,
976979 ValueKinds .FormalsOrNull ,
977980 ValueKinds .Integer , // formals offset
978981 ValueKinds .TypeVariableListOrNull ,
@@ -988,6 +991,7 @@ class OutlineBuilder extends StackListenerImpl {
988991 ValueKinds .Integer , // var/final/const offset
989992 ValueKinds .MetadataListOrNull ,
990993 ]));
994+ AsyncMarker asyncModifier = pop ();
991995 List <FormalParameterBuilder > formals = pop ();
992996 int formalsOffset = pop ();
993997 List <TypeVariableBuilder > typeVariables = pop ();
@@ -1181,6 +1185,7 @@ class OutlineBuilder extends StackListenerImpl {
11811185 formalsOffset,
11821186 endToken.charOffset,
11831187 nativeMethodName,
1188+ asyncModifier,
11841189 isTopLevel: false );
11851190 }
11861191 nativeMethodName = null ;
@@ -1926,6 +1931,7 @@ class OutlineBuilder extends StackListenerImpl {
19261931 if (kind == MethodBody .RedirectingFactoryBody ) {
19271932 redirectionTarget = nullIfParserRecovery (pop ());
19281933 }
1934+ AsyncMarker asyncModifier = pop ();
19291935 List <FormalParameterBuilder > formals = pop ();
19301936 int formalsOffset = pop ();
19311937 pop (); // type variables
@@ -1943,17 +1949,19 @@ class OutlineBuilder extends StackListenerImpl {
19431949 }
19441950 String documentationComment = getDocumentationComment (beginToken);
19451951 libraryBuilder.addFactoryMethod (
1946- documentationComment,
1947- metadata,
1948- modifiers,
1949- name,
1950- formals,
1951- redirectionTarget,
1952- beginToken.charOffset,
1953- charOffset,
1954- formalsOffset,
1955- endToken.charOffset,
1956- nativeMethodName);
1952+ documentationComment,
1953+ metadata,
1954+ modifiers,
1955+ name,
1956+ formals,
1957+ redirectionTarget,
1958+ beginToken.charOffset,
1959+ charOffset,
1960+ formalsOffset,
1961+ endToken.charOffset,
1962+ nativeMethodName,
1963+ asyncModifier,
1964+ );
19571965 nativeMethodName = null ;
19581966 inConstructor = false ;
19591967 }
@@ -2060,6 +2068,7 @@ class OutlineBuilder extends StackListenerImpl {
20602068 @override
20612069 void handleAsyncModifier (Token asyncToken, Token starToken) {
20622070 debugEvent ("AsyncModifier" );
2071+ push (asyncMarkerFromTokens (asyncToken, starToken));
20632072 }
20642073
20652074 void addProblem (Message message, int charOffset, int length,
0 commit comments