Index: pkg/analyzer/test/src/task/strong_mode_test.dart |
diff --git a/pkg/analyzer/test/src/task/strong_mode_test.dart b/pkg/analyzer/test/src/task/strong_mode_test.dart |
index b8be53957449b9f85e9914877c87e86dd70bdfe1..d0c04a3306f3078780dff6517c651cb452a7f1c3 100644 |
--- a/pkg/analyzer/test/src/task/strong_mode_test.dart |
+++ b/pkg/analyzer/test/src/task/strong_mode_test.dart |
@@ -241,6 +241,32 @@ class B extends A { |
expect(getterB.returnType, getterA.returnType); |
} |
+ void test_inferCompilationUnit_field_single_final_narrowType() { |
+ InstanceMemberInferrer inferrer = createInferrer; |
+ String fieldName = 'f'; |
+ CompilationUnitElement unit = resolve(''' |
+class A { |
+ final $fieldName; |
+} |
+class B extends A { |
+ final $fieldName = 0; |
+} |
+'''); |
+ ClassElement classA = unit.getType('A'); |
+ FieldElement fieldA = classA.getField(fieldName); |
+ PropertyAccessorElement getterA = classA.getGetter(fieldName); |
+ ClassElement classB = unit.getType('B'); |
+ FieldElement fieldB = classB.getField(fieldName); |
+ PropertyAccessorElement getterB = classB.getGetter(fieldName); |
+ expect(fieldB.type.isDynamic, isTrue); |
+ expect(getterB.returnType.isDynamic, isTrue); |
+ |
+ inferrer.inferCompilationUnit(unit); |
+ |
+ expect(fieldB.type, inferrer.typeProvider.intType); |
+ expect(getterB.returnType, fieldB.type); |
+ } |
+ |
void test_inferCompilationUnit_field_single_generic() { |
InstanceMemberInferrer inferrer = createInferrer; |
String fieldName = 'f'; |