Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: pkg/analyzer/test/src/task/strong_mode_test.dart

Issue 1367183004: analyzer strong mode: infer final field from initializer if super getters are dynamic (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: redo comment per Brian's suggestion Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/lib/src/task/strong_mode.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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';
« no previous file with comments | « pkg/analyzer/lib/src/task/strong_mode.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698