Skip to content

Commit 1ff82c5

Browse files
Dan Rubelcommit-bot@chromium.org
Dan Rubel
authored andcommitted
Update endFunctionType event to take questionMark token
... which in this CL will always null. This is another step when adding NNDB support as outlined in dart-lang/language#110 Change-Id: I3974fcb885c63be4af9d1007258383f3f8191ae0 Reviewed-on: https://dart-review.googlesource.com/c/87080 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Dan Rubel <[email protected]>
1 parent 15d65fb commit 1ff82c5

File tree

10 files changed

+35
-32
lines changed

10 files changed

+35
-32
lines changed

pkg/analyzer/lib/src/fasta/ast_builder.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -1118,9 +1118,10 @@ class AstBuilder extends StackListener {
11181118
}
11191119

11201120
@override
1121-
void endFunctionType(Token functionToken) {
1121+
void endFunctionType(Token functionToken, Token questionMark) {
11221122
assert(optional('Function', functionToken));
11231123
debugEvent("FunctionType");
1124+
reportErrorIfNullableType(questionMark);
11241125

11251126
FormalParameterList parameters = pop();
11261127
TypeAnnotation returnType = pop();

pkg/analyzer/test/generated/parser_fasta_listener.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -776,9 +776,9 @@ class ForwardingTestListener extends ForwardingListener {
776776
}
777777

778778
@override
779-
void endFunctionType(Token functionToken) {
779+
void endFunctionType(Token functionToken, Token questionMark) {
780780
end('FunctionType');
781-
super.endFunctionType(functionToken);
781+
super.endFunctionType(functionToken, questionMark);
782782
}
783783

784784
@override

pkg/front_end/lib/src/fasta/kernel/body_builder.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -2540,8 +2540,9 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
25402540
}
25412541

25422542
@override
2543-
void endFunctionType(Token functionToken) {
2543+
void endFunctionType(Token functionToken, Token questionMark) {
25442544
debugEvent("FunctionType");
2545+
reportErrorIfNullableType(questionMark);
25452546
FormalParameters formals = pop();
25462547
UnresolvedType<KernelTypeBuilder> returnType = pop();
25472548
List<KernelTypeVariableBuilder> typeVariables = pop();

pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -625,8 +625,8 @@ class ForwardingListener implements Listener {
625625
}
626626

627627
@override
628-
void endFunctionType(Token functionToken) {
629-
listener?.endFunctionType(functionToken);
628+
void endFunctionType(Token functionToken, Token questionMark) {
629+
listener?.endFunctionType(functionToken, questionMark);
630630
}
631631

632632
@override

pkg/front_end/lib/src/fasta/parser/listener.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ class Listener implements UnescapeErrorListener {
963963
/// - Type variables
964964
/// - Return type
965965
/// - Formal parameters
966-
void endFunctionType(Token functionToken) {
966+
void endFunctionType(Token functionToken, Token questionMark) {
967967
logEvent("FunctionType");
968968
}
969969

pkg/front_end/lib/src/fasta/parser/type_info_impl.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ class ComplexTypeInfo implements TypeInfo {
469469
--endGroupIndex;
470470
token = parser.parseFormalParametersRequiredOpt(
471471
token, MemberKind.GeneralizedFunctionType);
472-
parser.listener.endFunctionType(functionToken);
472+
parser.listener.endFunctionType(functionToken, null);
473473
}
474474

475475
// There are two situations in which the [token] != [end]:

pkg/front_end/lib/src/fasta/source/diet_listener.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ class DietListener extends StackListener {
223223
}
224224

225225
@override
226-
void endFunctionType(Token functionToken) {
226+
void endFunctionType(Token functionToken, Token questionMark) {
227227
debugEvent("FunctionType");
228228
discard(1);
229229
}

pkg/front_end/lib/src/fasta/source/outline_builder.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -1184,8 +1184,9 @@ class OutlineBuilder extends StackListener {
11841184
}
11851185

11861186
@override
1187-
void endFunctionType(Token functionToken) {
1187+
void endFunctionType(Token functionToken, Token questionMark) {
11881188
debugEvent("FunctionType");
1189+
reportErrorIfNullableType(questionMark);
11891190
List<FormalParameterBuilder> formals = pop();
11901191
pop(); // formals offset
11911192
TypeBuilder returnType = pop();

pkg/front_end/lib/src/fasta/source/type_promotion_look_ahead_listener.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,7 @@ class TypePromotionLookAheadListener extends Listener {
619619
}
620620

621621
@override
622-
void endFunctionType(Token functionToken) {
622+
void endFunctionType(Token functionToken, Token questionMark) {
623623
debugEvent("FunctionType", functionToken);
624624
}
625625

pkg/front_end/test/fasta/parser/type_info_test.dart

+21-21
Original file line numberDiff line numberDiff line change
@@ -700,7 +700,7 @@ class TypeInfoTest {
700700
'handleNoType ',
701701
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
702702
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
703-
'endFunctionType Function',
703+
'endFunctionType Function null',
704704
]);
705705
expectComplexInfo('Function<T>() m', expectedAfter: 'm', expectedCalls: [
706706
'beginTypeVariables <',
@@ -716,7 +716,7 @@ class TypeInfoTest {
716716
'handleNoType ',
717717
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
718718
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
719-
'endFunctionType Function',
719+
'endFunctionType Function null',
720720
]);
721721
expectComplexInfo('Function(int) m', expectedAfter: 'm', expectedCalls: [
722722
'handleNoTypeVariables (',
@@ -734,7 +734,7 @@ class TypeInfoTest {
734734
'endFormalParameter null null ) FormalParameterKind.mandatory '
735735
'MemberKind.GeneralizedFunctionType',
736736
'endFormalParameters 1 ( ) MemberKind.GeneralizedFunctionType',
737-
'endFunctionType Function',
737+
'endFunctionType Function null',
738738
]);
739739
expectComplexInfo('Function<T>(int) m', expectedAfter: 'm', expectedCalls: [
740740
'beginTypeVariables <',
@@ -760,7 +760,7 @@ class TypeInfoTest {
760760
'endFormalParameter null null ) FormalParameterKind.mandatory'
761761
' MemberKind.GeneralizedFunctionType',
762762
'endFormalParameters 1 ( ) MemberKind.GeneralizedFunctionType',
763-
'endFunctionType Function',
763+
'endFunctionType Function null',
764764
]);
765765

766766
expectComplexInfo('Function(int x)', required: true);
@@ -796,7 +796,7 @@ class TypeInfoTest {
796796
'handleType C null',
797797
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
798798
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
799-
'endFunctionType Function',
799+
'endFunctionType Function null',
800800
]);
801801
}
802802

@@ -878,7 +878,7 @@ class TypeInfoTest {
878878
'handleType C null',
879879
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
880880
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
881-
'endFunctionType Function',
881+
'endFunctionType Function null',
882882
]);
883883
expectComplexInfo('C<T> Function<T>(int x) Function<T>(int x)',
884884
required: false, expectedAfter: 'Function');
@@ -992,7 +992,7 @@ class TypeInfoTest {
992992
'handleType C null',
993993
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
994994
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
995-
'endFunctionType Function',
995+
'endFunctionType Function null',
996996
]);
997997
expectComplexInfo('C.a Function<T>(int x) Function<T>(int x)',
998998
required: false, expectedAfter: 'Function');
@@ -1071,7 +1071,7 @@ class TypeInfoTest {
10711071
'endFormalParameter null null x FormalParameterKind.mandatory '
10721072
'MemberKind.GeneralizedFunctionType',
10731073
'endFormalParameters 1 ( ) MemberKind.GeneralizedFunctionType',
1074-
'endFunctionType Function',
1074+
'endFunctionType Function null',
10751075
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
10761076
'beginMetadataStar int',
10771077
'endMetadataStar 0',
@@ -1084,7 +1084,7 @@ class TypeInfoTest {
10841084
'endFormalParameter null null x FormalParameterKind.mandatory '
10851085
'MemberKind.GeneralizedFunctionType',
10861086
'endFormalParameters 1 ( ) MemberKind.GeneralizedFunctionType',
1087-
'endFunctionType Function',
1087+
'endFunctionType Function null',
10881088
]);
10891089
}
10901090

@@ -1097,7 +1097,7 @@ class TypeInfoTest {
10971097
'handleVoidKeyword void',
10981098
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
10991099
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1100-
'endFunctionType Function',
1100+
'endFunctionType Function null',
11011101
]);
11021102
}
11031103

@@ -1108,7 +1108,7 @@ class TypeInfoTest {
11081108
'handleVoidKeyword void',
11091109
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
11101110
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1111-
'endFunctionType Function',
1111+
'endFunctionType Function null',
11121112
]);
11131113

11141114
expectComplexInfo('void Function<T>()', required: true);
@@ -1367,7 +1367,7 @@ class TypeParamOrArgInfoTest {
13671367
'handleType S null',
13681368
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
13691369
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1370-
'endFunctionType Function',
1370+
'endFunctionType Function null',
13711371
'endTypeArguments 1 < >'
13721372
]);
13731373
expectComplexTypeArg('<void Function()>',
@@ -1379,7 +1379,7 @@ class TypeParamOrArgInfoTest {
13791379
'handleVoidKeyword void',
13801380
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
13811381
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1382-
'endFunctionType Function',
1382+
'endFunctionType Function null',
13831383
'endTypeArguments 1 < >'
13841384
]);
13851385
expectComplexTypeArg('<S<T>>', typeArgumentCount: 1, expectedCalls: [
@@ -1451,7 +1451,7 @@ class TypeParamOrArgInfoTest {
14511451
'handleNoType <',
14521452
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
14531453
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1454-
'endFunctionType Function',
1454+
'endFunctionType Function null',
14551455
'endTypeArguments 1 < >',
14561456
'handleType S null',
14571457
'endTypeArguments 1 < >'
@@ -1468,7 +1468,7 @@ class TypeParamOrArgInfoTest {
14681468
'handleNoType <',
14691469
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
14701470
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1471-
'endFunctionType Function',
1471+
'endFunctionType Function null',
14721472
'endTypeArguments 1 < >',
14731473
'handleType S null',
14741474
'endTypeArguments 1 < >'
@@ -1484,7 +1484,7 @@ class TypeParamOrArgInfoTest {
14841484
'handleVoidKeyword void', // was 'handleNoType <'
14851485
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
14861486
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1487-
'endFunctionType Function',
1487+
'endFunctionType Function null',
14881488
'endTypeArguments 1 < >',
14891489
'handleType S null',
14901490
'endTypeArguments 1 < >'
@@ -1502,7 +1502,7 @@ class TypeParamOrArgInfoTest {
15021502
'handleVoidKeyword void', // was 'handleNoType <'
15031503
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
15041504
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1505-
'endFunctionType Function',
1505+
'endFunctionType Function null',
15061506
'endTypeArguments 1 < >',
15071507
'handleType T null',
15081508
'endTypeArguments 1 < >',
@@ -1680,7 +1680,7 @@ class TypeParamOrArgInfoTest {
16801680
'handleVoidKeyword void',
16811681
'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
16821682
'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
1683-
'endFunctionType Function',
1683+
'endFunctionType Function null',
16841684
'endTypeVariable > 1 extends',
16851685
'handleNoType R',
16861686
'endTypeVariable , 0 null',
@@ -1943,7 +1943,7 @@ class TypeParamOrArgInfoTest {
19431943
'handleFormalParameterWithoutValue )',
19441944
'endFormalParameter null null ) FormalParameterKind.mandatory MemberKind.GeneralizedFunctionType',
19451945
'endFormalParameters 1 ( ) MemberKind.GeneralizedFunctionType',
1946-
'endFunctionType Function',
1946+
'endFunctionType Function null',
19471947
'endTypeVariable > 0 extends',
19481948
'endTypeVariables < >'
19491949
]);
@@ -2339,8 +2339,8 @@ class TypeInfoListener implements Listener {
23392339
}
23402340

23412341
@override
2342-
void endFunctionType(Token functionToken) {
2343-
calls.add('endFunctionType $functionToken');
2342+
void endFunctionType(Token functionToken, Token questionMark) {
2343+
calls.add('endFunctionType $functionToken $questionMark');
23442344
}
23452345

23462346
@override

0 commit comments

Comments
 (0)