OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analyzer.test.generated.strong_mode_test; | 5 library analyzer.test.generated.strong_mode_test; |
6 | 6 |
7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
8 import 'package:analyzer/dart/element/element.dart'; | 8 import 'package:analyzer/dart/element/element.dart'; |
9 import 'package:analyzer/dart/element/type.dart'; | 9 import 'package:analyzer/dart/element/type.dart'; |
10 import 'package:analyzer/src/dart/element/element.dart'; | 10 import 'package:analyzer/src/dart/element/element.dart'; |
(...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 A<int, String> a2 = new D<int, String>("hello"); | 791 A<int, String> a2 = new D<int, String>("hello"); |
792 A<int, String> a3 = new D<String, String>.named("hello"); | 792 A<int, String> a3 = new D<String, String>.named("hello"); |
793 A<int, String> a4 = new D<num, dynamic>("hello"); | 793 A<int, String> a4 = new D<num, dynamic>("hello"); |
794 A<int, String> a5 = new D<dynamic, dynamic>.named("hello"); | 794 A<int, String> a5 = new D<dynamic, dynamic>.named("hello"); |
795 } | 795 } |
796 void test7() { | 796 void test7() { |
797 A<int, String> a0 = new D(3); | 797 A<int, String> a0 = new D(3); |
798 A<int, String> a1 = new D.named(3); | 798 A<int, String> a1 = new D.named(3); |
799 } | 799 } |
800 void test8() { | 800 void test8() { |
801 // Currently we only allow variable constraints. Test that we reject. | |
802 A<C<int>, String> a0 = new E("hello"); | 801 A<C<int>, String> a0 = new E("hello"); |
803 } | 802 } |
804 void test9() { // Check named and optional arguments | 803 void test9() { // Check named and optional arguments |
805 A<int, String> a0 = new F(3, "hello", a: [3], b: ["hello"]); | 804 A<int, String> a0 = new F(3, "hello", a: [3], b: ["hello"]); |
806 A<int, String> a1 = new F(3, "hello", a: ["hello"], b:[3]); | 805 A<int, String> a1 = new F(3, "hello", a: ["hello"], b:[3]); |
807 A<int, String> a2 = new F.named(3, "hello", 3, "hello"); | 806 A<int, String> a2 = new F.named(3, "hello", 3, "hello"); |
808 A<int, String> a3 = new F.named(3, "hello"); | 807 A<int, String> a3 = new F.named(3, "hello"); |
809 A<int, String> a4 = new F.named(3, "hello", "hello", 3); | 808 A<int, String> a4 = new F.named(3, "hello", "hello", 3); |
810 A<int, String> a5 = new F.named(3, "hello", "hello"); | 809 A<int, String> a5 = new F.named(3, "hello", "hello"); |
811 } | 810 } |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
914 { | 913 { |
915 List<Statement> statements = | 914 List<Statement> statements = |
916 AstFinder.getStatementsInTopLevelFunction(unit, "test7"); | 915 AstFinder.getStatementsInTopLevelFunction(unit, "test7"); |
917 hasType(assertDOf([_isDynamic, _isString]), rhs(statements[0])); | 916 hasType(assertDOf([_isDynamic, _isString]), rhs(statements[0])); |
918 hasType(assertDOf([_isDynamic, _isString]), rhs(statements[1])); | 917 hasType(assertDOf([_isDynamic, _isString]), rhs(statements[1])); |
919 } | 918 } |
920 | 919 |
921 { | 920 { |
922 List<Statement> statements = | 921 List<Statement> statements = |
923 AstFinder.getStatementsInTopLevelFunction(unit, "test8"); | 922 AstFinder.getStatementsInTopLevelFunction(unit, "test8"); |
924 hasType(assertEOf([_isDynamic, _isDynamic]), rhs(statements[0])); | 923 hasType(assertEOf([_isInt, _isString]), rhs(statements[0])); |
925 } | 924 } |
926 | 925 |
927 { | 926 { |
928 List<Statement> statements = | 927 List<Statement> statements = |
929 AstFinder.getStatementsInTopLevelFunction(unit, "test9"); | 928 AstFinder.getStatementsInTopLevelFunction(unit, "test9"); |
930 hasType(assertFOf([_isInt, _isString]), rhs(statements[0])); | 929 hasType(assertFOf([_isInt, _isString]), rhs(statements[0])); |
931 hasType(assertFOf([_isInt, _isString]), rhs(statements[1])); | 930 hasType(assertFOf([_isInt, _isString]), rhs(statements[1])); |
932 hasType(assertFOf([_isInt, _isString]), rhs(statements[2])); | 931 hasType(assertFOf([_isInt, _isString]), rhs(statements[2])); |
933 hasType(assertFOf([_isInt, _isString]), rhs(statements[3])); | 932 hasType(assertFOf([_isInt, _isString]), rhs(statements[3])); |
934 hasType(assertFOf([_isInt, _isString]), rhs(statements[4])); | 933 hasType(assertFOf([_isInt, _isString]), rhs(statements[4])); |
(...skipping 1373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2308 main() { | 2307 main() { |
2309 var v = x; | 2308 var v = x; |
2310 v; // marker | 2309 v; // marker |
2311 } | 2310 } |
2312 int x = 3; | 2311 int x = 3; |
2313 '''; | 2312 '''; |
2314 assertPropagatedAssignedType(code, typeProvider.intType, null); | 2313 assertPropagatedAssignedType(code, typeProvider.intType, null); |
2315 assertTypeOfMarkedExpression(code, typeProvider.intType, null); | 2314 assertTypeOfMarkedExpression(code, typeProvider.intType, null); |
2316 } | 2315 } |
2317 } | 2316 } |
OLD | NEW |