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

Side by Side Diff: tests/language/src/TypeVariableBoundsTest.dart

Issue 10248007: test rename overhaul: step 8 - language tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
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.
4
5 // Test of parameterized factory methods.
6
7 class Foo<T extends num> {
8 Foo();
9
10 factory XFoo.bad() { return null; } /// 00: compile-time error
11
12 factory IFoo.good() { return null; }
13
14 factory IFoo() { return null; }
15 }
16
17 interface IFoo<T extends num> default Foo<T extends num> {
18 }
19
20 // String is not assignable to num.
21 class Baz
22 extends Foo<String> /// 01: static type warning, dynamic type error
23 {}
24
25 class Biz extends Foo<int> {}
26
27 Foo<int> fi;
28
29 // String is not assignable to num.
30 Foo
31 <String> /// 02: static type warning, dynamic type error
32 fs;
33
34 class Box<T> {
35
36 // Box.T is not assignable to num.
37 Foo<T> t; /// 03: static type warning
38
39 makeFoo() {
40 // Box.T is not assignable to num.
41 return new Foo<T>(); /// 04: static type warning
42 }
43 }
44
45 main() {
46 // String is not assignable to num.
47 var v1 = new Foo<String>(); /// 05: static type warning, dynamic type error
48
49 // String is not assignable to num.
50 Foo<String> v2 = null; /// 06: static type warning
51
52 new Baz();
53 new Biz();
54
55 fi = new Foo();
56 fs = new Foo();
57
58 new Box().makeFoo();
59 new Box<int>().makeFoo();
60 new Box<String>().makeFoo();
61
62 // Fisk does not exist.
63 new Box<Fisk>(); /// 07: compile-time error
64
65 // Too many type arguments.
66 new Box<Object, Object>(); /// 08: compile-time error
67
68 // Fisk does not exist.
69 Box<Fisk> box = null; /// 09: static type warning
70
71 // Too many type arguments.
72 Box<Object, Object> box = null; /// 10: static type warning
73 }
OLDNEW
« no previous file with comments | « tests/language/src/TypeVariableBounds2Test.dart ('k') | tests/language/src/TypeVariableIdentifierExpressionNegativeTest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698