Index: pkg/analyzer/test/src/task/strong/inferred_type_test.dart |
diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart |
index ccb9587d19588269d260d14d20633fd42bca4fba..48a6d784ae65f1b63b19c18c229379f14cd343e9 100644 |
--- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart |
+++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart |
@@ -723,7 +723,7 @@ class Foo { |
} |
void f([List<int> l = /*info:INFERRED_TYPE_LITERAL*/const [1]]) {} |
// We do this inference in an early task but don't preserve the infos. |
-Function2<List<int>, String> g = /*pass should be info:INFERRED_TYPE_CLOSURE*/([llll = /*info:INFERRED_TYPE_LITERAL*/const [1]]) => "hello"; |
+Function2<List<int>, String> g = /*pass should be info:INFERRED_TYPE_CLOSURE*/([/*info:INFERRED_TYPE*/llll = /*info:INFERRED_TYPE_LITERAL*/const [1]]) => "hello"; |
'''); |
} |
@@ -1913,6 +1913,33 @@ foo() { |
'''); |
} |
+ void test_inferDefaultFormalParameter() { |
+ var unit = checkFile(''' |
+f([/*info:INFERRED_TYPE*/x = 42]) {} |
+g({/*info:INFERRED_TYPE*/x: 'hi'}) {} |
+'''); |
+ expect(unit.functions[0].parameters[0].type.toString(), 'int'); |
+ expect(unit.functions[1].parameters[0].type.toString(), 'String'); |
+ } |
+ |
+ void test_inferDefaultFormalParameter_fieldFormal() { |
+ checkFile(''' |
+class C { |
+ int x; |
+ var y; |
+ C({this.x: /*error:INVALID_ASSIGNMENT*/0.0, this.y: 'hi'}) { |
+ String z = /*info:DYNAMIC_CAST*/y; |
+ } |
+ C.c([this.x =/*error:INVALID_ASSIGNMENT*/0.0, this.y = 'hi']) { |
+ String z = /*info:DYNAMIC_CAST*/y; |
+ } |
+ m() { |
+ String z = /*info:DYNAMIC_CAST*/y; |
+ } |
+} |
+'''); |
+ } |
+ |
void test_inferedType_usesSyntheticFunctionType() { |
var mainUnit = checkFile(''' |
int f() => null; |