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

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

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

Powered by Google App Engine
This is Rietveld 408576698