OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // VMOptions=--enable_type_checks --enable_asserts | 4 // VMOptions=--enable_type_checks --enable_asserts |
5 // | 5 // |
6 // Dart test program testing type checks. | 6 // Dart test program testing type checks. |
7 | 7 |
8 class TypeTest { | 8 class TypeTest { |
9 static test() { | 9 static test() { |
10 int result = 0; | 10 int result = 0; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 static testAnyFunction() { | 117 static testAnyFunction() { |
118 int result = 0; | 118 int result = 0; |
119 Function anyFunction; | 119 Function anyFunction; |
120 f() { }; | 120 f() { }; |
121 anyFunction = f; // No error. | 121 anyFunction = f; // No error. |
122 try { | 122 try { |
123 int i = f; // Throws a TypeError if type checks are enabled. | 123 int i = f; // Throws a TypeError if type checks are enabled. |
124 } catch (TypeError error) { | 124 } catch (TypeError error) { |
125 result = 1; | 125 result = 1; |
126 Expect.equals("int", error.dstType); | 126 Expect.equals("int", error.dstType); |
127 Expect.equals("() => var", error.srcType); // TODO(regis): => Dynamic. | 127 Expect.equals("() => Dynamic", error.srcType); |
128 Expect.equals("i", error.dstName); | 128 Expect.equals("i", error.dstName); |
129 int pos = error.url.lastIndexOf("/", error.url.length); | 129 int pos = error.url.lastIndexOf("/", error.url.length); |
130 if (pos == -1) { | 130 if (pos == -1) { |
131 pos = error.url.lastIndexOf("\\", error.url.length); | 131 pos = error.url.lastIndexOf("\\", error.url.length); |
132 } | 132 } |
133 String subs = error.url.substring(pos + 1, error.url.length); | 133 String subs = error.url.substring(pos + 1, error.url.length); |
134 Expect.equals("TypeVMTest.dart", subs); | 134 Expect.equals("TypeVMTest.dart", subs); |
135 Expect.equals(123, error.line); | 135 Expect.equals(123, error.line); |
136 Expect.equals(15, error.column); | 136 Expect.equals(15, error.column); |
137 } | 137 } |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
470 class C { | 470 class C { |
471 factory C() { | 471 factory C() { |
472 return 1; // Implicit result type is 'C', not int. | 472 return 1; // Implicit result type is 'C', not int. |
473 } | 473 } |
474 } | 474 } |
475 | 475 |
476 | 476 |
477 main() { | 477 main() { |
478 TypeTest.testMain(); | 478 TypeTest.testMain(); |
479 } | 479 } |
OLD | NEW |