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

Side by Side Diff: test/checker/checker_test.dart

Issue 1252773002: add test related to #264 and #228 (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 5 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 unified diff | Download patch
« no previous file with comments | « lib/src/dart_sdk.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 /// General type checking tests 5 /// General type checking tests
6 library dev_compiler.test.checker_test; 6 library dev_compiler.test.checker_test;
7 7
8 import 'package:test/test.dart'; 8 import 'package:test/test.dart';
9 9
10 import '../testing.dart'; 10 import '../testing.dart';
(...skipping 2657 matching lines...) Expand 10 before | Expand all | Expand 10 after
2668 }''' 2668 }'''
2669 }, 2669 },
2670 customUrlMappings: { 2670 customUrlMappings: {
2671 'dart:foobar': '$testDirectory/checker/dart_foobar.dart' 2671 'dart:foobar': '$testDirectory/checker/dart_foobar.dart'
2672 })); 2672 }));
2673 2673
2674 group('function modifiers', () { 2674 group('function modifiers', () {
2675 test('async', () => testChecker({ 2675 test('async', () => testChecker({
2676 '/main.dart': ''' 2676 '/main.dart': '''
2677 import 'dart:async'; 2677 import 'dart:async';
2678 import 'dart:math' show Random;
2678 2679
2679 dynamic x; 2680 dynamic x;
2680 2681
2681 foo1() async => x; 2682 foo1() async => x;
2682 Future foo2() async => x; 2683 Future foo2() async => x;
2683 Future<int> foo3() async => (/*info:DynamicCast*/x); 2684 Future<int> foo3() async => (/*info:DynamicCast*/x);
2684 Future<int> foo4() async => (/*severe:StaticTypeError*/new Future<int>(x )); 2685 Future<int> foo4() async => (/*severe:StaticTypeError*/new Future<int>.v alue(/*info:DynamicCast*/x));
2685 2686
2686 bar1() async { return x; } 2687 bar1() async { return x; }
2687 Future bar2() async { return x; } 2688 Future bar2() async { return x; }
2688 Future<int> bar3() async { return (/*info:DynamicCast*/x); } 2689 Future<int> bar3() async { return (/*info:DynamicCast*/x); }
2689 Future<int> bar4() async { return (/*severe:StaticTypeError*/new Future< int>(x)); } 2690 Future<int> bar4() async { return (/*severe:StaticTypeError*/new Future< int>.value(/*info:DynamicCast*/x)); }
2690 2691
2691 int y; 2692 int y;
2692 Future<int> z; 2693 Future<int> z;
2693 2694
2694 void baz() async { 2695 void baz() async {
2695 int a = /*info:DynamicCast*/await x; 2696 int a = /*info:DynamicCast*/await x;
2696 int b = await y; 2697 int b = await y;
2697 int c = await z; 2698 int c = await z;
2698 String d = /*severe:StaticTypeError*/await z; 2699 String d = /*severe:StaticTypeError*/await z;
2699 } 2700 }
2700 2701
2701 Future<bool> get issue_264 async { 2702 Future<bool> get issue_264 async {
2702 await 42; 2703 await 42;
2703 return false; 2704 if (new Random().nextBool()) {
2705 return true;
2706 } else {
2707 return /*severe:StaticTypeError*/new Future<bool>.value(false);
2708 }
2704 } 2709 }
2705 ''' 2710 '''
2706 })); 2711 }));
2707 2712
2708 test('async*', () => testChecker({ 2713 test('async*', () => testChecker({
2709 '/main.dart': ''' 2714 '/main.dart': '''
2710 import 'dart:async'; 2715 import 'dart:async';
2711 2716
2712 dynamic x; 2717 dynamic x;
2713 2718
(...skipping 23 matching lines...) Expand all
2737 2742
2738 baz1() sync* { yield* (/*info:DynamicCast*/x); } 2743 baz1() sync* { yield* (/*info:DynamicCast*/x); }
2739 Iterable baz2() sync* { yield* (/*info:DynamicCast*/x); } 2744 Iterable baz2() sync* { yield* (/*info:DynamicCast*/x); }
2740 Iterable<int> baz3() sync* { yield* (/*warning:DownCastComposite*/x); } 2745 Iterable<int> baz3() sync* { yield* (/*warning:DownCastComposite*/x); }
2741 Iterable<int> baz4() sync* { yield* new Iterable<int>(); } 2746 Iterable<int> baz4() sync* { yield* new Iterable<int>(); }
2742 Iterable<int> baz5() sync* { yield* (/*info:InferredTypeAllocation*/new Iterable()); } 2747 Iterable<int> baz5() sync* { yield* (/*info:InferredTypeAllocation*/new Iterable()); }
2743 ''' 2748 '''
2744 })); 2749 }));
2745 }); 2750 });
2746 } 2751 }
OLDNEW
« no previous file with comments | « lib/src/dart_sdk.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698