@@ -32,30 +32,7 @@ class TopMergeTest extends AbstractTypeSystemTest {
3232 _check (dynamicType, dynamicType, dynamicType);
3333 }
3434
35- test_function () {
36- _check (
37- functionTypeNone (returnType: voidNone),
38- functionTypeNone (returnType: objectQuestion),
39- functionTypeNone (returnType: objectQuestion),
40- );
41-
42- _check (
43- functionTypeNone (
44- returnType: voidNone,
45- formalParameters: [requiredParameter (type: objectQuestion, name: 'a' )],
46- ),
47- functionTypeNone (
48- returnType: voidNone,
49- formalParameters: [requiredParameter (type: dynamicType, name: 'a' )],
50- ),
51- functionTypeNone (
52- returnType: voidNone,
53- formalParameters: [requiredParameter (type: objectQuestion, name: 'a' )],
54- ),
55- );
56- }
57-
58- test_function_covariant () {
35+ test_function_parameters_covariant () {
5936 _check (
6037 functionTypeNone (
6138 returnType: voidNone,
@@ -91,22 +68,37 @@ class TopMergeTest extends AbstractTypeSystemTest {
9168 );
9269 }
9370
94- test_function_parameters_mismatch () {
71+ test_function_parameters_kind_optionalPositional_optionalPositional () {
9572 _check (
9673 functionTypeNone (
9774 returnType: voidNone,
98- formalParameters: [requiredParameter (type: intNone, name : 'a' )],
75+ formalParameters: [positionalParameter (type: intNone)],
9976 ),
10077 functionTypeNone (
10178 returnType: voidNone,
102- formalParameters: [requiredParameter (type: intNone, name : 'b' )],
79+ formalParameters: [positionalParameter (type: intNone)],
10380 ),
10481 functionTypeNone (
10582 returnType: voidNone,
106- formalParameters: [requiredParameter (type: intNone, name: 'a' )],
83+ formalParameters: [positionalParameter (type: intNone)],
84+ ),
85+ );
86+ }
87+
88+ test_function_parameters_kind_requiredNamed_optionalNamed () {
89+ _checkThrows (
90+ functionTypeNone (
91+ returnType: voidNone,
92+ formalParameters: [namedRequiredParameter (type: intNone, name: 'a' )],
93+ ),
94+ functionTypeNone (
95+ returnType: voidNone,
96+ formalParameters: [namedParameter (type: intNone, name: 'a' )],
10797 ),
10898 );
99+ }
109100
101+ test_function_parameters_kind_requiredPositional_optionalPositional () {
110102 _checkThrows (
111103 functionTypeNone (
112104 returnType: voidNone,
@@ -130,6 +122,48 @@ class TopMergeTest extends AbstractTypeSystemTest {
130122 );
131123 }
132124
125+ test_function_parameters_mismatch () {
126+ _check (
127+ functionTypeNone (
128+ returnType: voidNone,
129+ formalParameters: [requiredParameter (type: intNone, name: 'a' )],
130+ ),
131+ functionTypeNone (
132+ returnType: voidNone,
133+ formalParameters: [requiredParameter (type: intNone, name: 'b' )],
134+ ),
135+ functionTypeNone (
136+ returnType: voidNone,
137+ formalParameters: [requiredParameter (type: intNone, name: 'a' )],
138+ ),
139+ );
140+ }
141+
142+ test_function_parameters_type () {
143+ _check (
144+ functionTypeNone (
145+ returnType: voidNone,
146+ formalParameters: [requiredParameter (type: objectQuestion, name: 'a' )],
147+ ),
148+ functionTypeNone (
149+ returnType: voidNone,
150+ formalParameters: [requiredParameter (type: dynamicType, name: 'a' )],
151+ ),
152+ functionTypeNone (
153+ returnType: voidNone,
154+ formalParameters: [requiredParameter (type: objectQuestion, name: 'a' )],
155+ ),
156+ );
157+ }
158+
159+ test_function_returnType () {
160+ _check (
161+ functionTypeNone (returnType: voidNone),
162+ functionTypeNone (returnType: objectQuestion),
163+ functionTypeNone (returnType: objectQuestion),
164+ );
165+ }
166+
133167 test_function_typeParameters_boundsMerge () {
134168 var T1 = typeParameter ('T' , bound: dynamicType);
135169 var T2 = typeParameter ('T' , bound: objectQuestion);
0 commit comments