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

Unified Diff: pkg/analyzer/test/generated/resolver_test.dart

Issue 1506003002: Handle property accesses in generic method invocation (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Add tests Created 5 years 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/checker.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/generated/resolver_test.dart
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 927a4ae9635a1fe9a15d2fb21131b5952e8d1874..bddddeadce0d671bce103e09613dc4be2ecc7802 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -13152,6 +13152,81 @@ main() {
expect(declaration.initializer.propagatedType, isNull);
}
+ void test_genericFunction_typedef() {
+ String code = r'''
+typedef T F<T>(T x);
+F f0;
+
+class C {
+ static F f1;
+ F f2;
+ void g(F f3) {
+ F f4;
+ f0(3);
+ f1(3);
+ f2(3);
+ f3(3);
+ f4(3);
+ }
+}
+
+class D<S> {
+ static F f1;
+ F f2;
+ void g(F f3) {
+ F f4;
+ f0(3);
+ f1(3);
+ f2(3);
+ f3(3);
+ f4(3);
+ }
+}
+''';
+ _resolveTestUnit(code);
+
+ {
+ List<Statement> statements =
+ AstFinder.getStatementsInMethod(testUnit, "C", "g");
+
+ ExpressionStatement exps0 = statements[1];
+ ExpressionStatement exps1 = statements[2];
+ ExpressionStatement exps2 = statements[3];
+ ExpressionStatement exps3 = statements[4];
+ ExpressionStatement exps4 = statements[5];
+ Expression exp0 = exps0.expression;
+ Expression exp1 = exps1.expression;
+ Expression exp2 = exps2.expression;
+ Expression exp3 = exps3.expression;
+ Expression exp4 = exps4.expression;
+ expect(exp0.staticType, typeProvider.dynamicType);
+ expect(exp1.staticType, typeProvider.dynamicType);
+ expect(exp2.staticType, typeProvider.dynamicType);
+ expect(exp3.staticType, typeProvider.dynamicType);
+ expect(exp4.staticType, typeProvider.dynamicType);
+ }
+ {
+ List<Statement> statements =
+ AstFinder.getStatementsInMethod(testUnit, "D", "g");
+
+ ExpressionStatement exps0 = statements[1];
+ ExpressionStatement exps1 = statements[2];
+ ExpressionStatement exps2 = statements[3];
+ ExpressionStatement exps3 = statements[4];
+ ExpressionStatement exps4 = statements[5];
+ Expression exp0 = exps0.expression;
+ Expression exp1 = exps1.expression;
+ Expression exp2 = exps2.expression;
+ Expression exp3 = exps3.expression;
+ Expression exp4 = exps4.expression;
+ expect(exp0.staticType, typeProvider.dynamicType);
+ expect(exp1.staticType, typeProvider.dynamicType);
+ expect(exp2.staticType, typeProvider.dynamicType);
+ expect(exp3.staticType, typeProvider.dynamicType);
+ expect(exp4.staticType, typeProvider.dynamicType);
+ }
+ }
+
void test_genericFunction() {
if (!AnalysisEngine.instance.useTaskModel) {
return;
« no previous file with comments | « pkg/analyzer/lib/src/task/strong/checker.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698