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

Side by Side Diff: pkg/analyzer/test/src/task/strong/checker_test.dart

Issue 1500793002: Checker is defensive against unresolved redirecting constructor (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: 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 unified diff | Download patch
« no previous file with comments | « pkg/analyzer/lib/src/task/strong/checker.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 // TODO(jmesserly): this file needs to be refactored, it's a port from 5 // TODO(jmesserly): this file needs to be refactored, it's a port from
6 // package:dev_compiler's tests 6 // package:dev_compiler's tests
7 /// General type checking tests 7 /// General type checking tests
8 library test.src.task.strong.checker_test; 8 library test.src.task.strong.checker_test;
9 9
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
(...skipping 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 main() { 1098 main() {
1099 bool b = true; 1099 bool b = true;
1100 num x = b ? 1 : 2.3; 1100 num x = b ? 1 : 2.3;
1101 int y = /*info:AssignmentCast*/b ? 1 : 2.3; 1101 int y = /*info:AssignmentCast*/b ? 1 : 2.3;
1102 String z = !b ? "hello" : null; 1102 String z = !b ? "hello" : null;
1103 z = b ? null : "hello"; 1103 z = b ? null : "hello";
1104 } 1104 }
1105 ''' 1105 '''
1106 }); 1106 });
1107 1107
1108 // This is a regression test for https://github.com/dart-lang/sdk/issues/25071
1109 testChecker('unbound redirecting constructor', {
1110 '/main.dart': '''
1111 class Foo {
1112 Foo() : this.init();
1113 }
1114 '''
1115 });
1116
1108 testChecker('redirecting constructor', { 1117 testChecker('redirecting constructor', {
1109 '/main.dart': ''' 1118 '/main.dart': '''
1110 class A { 1119 class A {
1111 A(A x) {} 1120 A(A x) {}
1112 A.two() : this(/*severe:StaticTypeError*/3); 1121 A.two() : this(/*severe:StaticTypeError*/3);
1113 } 1122 }
1114 ''' 1123 '''
1115 }); 1124 });
1116 1125
1117 testChecker('super constructor', { 1126 testChecker('super constructor', {
(...skipping 1286 matching lines...) Expand 10 before | Expand all | Expand 10 after
2404 2413
2405 baz1() sync* { yield* (/*info:DynamicCast*/x); } 2414 baz1() sync* { yield* (/*info:DynamicCast*/x); }
2406 Iterable baz2() sync* { yield* (/*info:DynamicCast*/x); } 2415 Iterable baz2() sync* { yield* (/*info:DynamicCast*/x); }
2407 Iterable<int> baz3() sync* { yield* (/*warning:DownCastComposite*/x); } 2416 Iterable<int> baz3() sync* { yield* (/*warning:DownCastComposite*/x); }
2408 Iterable<int> baz4() sync* { yield* new Iterable<int>(); } 2417 Iterable<int> baz4() sync* { yield* new Iterable<int>(); }
2409 Iterable<int> baz5() sync* { yield* (/*info:InferredTypeAllocation*/new Iterable()); } 2418 Iterable<int> baz5() sync* { yield* (/*info:InferredTypeAllocation*/new Iterable()); }
2410 ''' 2419 '''
2411 }); 2420 });
2412 }); 2421 });
2413 } 2422 }
OLDNEW
« 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