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

Unified Diff: tests/language/type_vm_test.dart

Issue 21832003: Fix VM implementation of CastError not to extend TypeError (issue 5280). (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
Index: tests/language/type_vm_test.dart
===================================================================
--- tests/language/type_vm_test.dart (revision 25753)
+++ tests/language/type_vm_test.dart (working copy)
@@ -3,26 +3,27 @@
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--enable_type_checks --no_show_internal_names
// Dart test program testing type checks.
+
import "package:expect/expect.dart";
+class C {
+ factory C() {
+ return 1; // Implicit result type is 'C', not int.
+ }
+}
+
class TypeTest {
static test() {
int result = 0;
try {
int i = "hello"; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result = 1;
- Expect.equals("int", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("i", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(12, error.line);
- Expect.equals(15, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'int'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("'i'")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:19:15"));
}
return result;
}
@@ -51,19 +52,13 @@
}
try {
int i = f("hello"); // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result = 1;
- Expect.equals("int", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("i", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(49, error.line);
- Expect.equals(15, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'int'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("'i'")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:50:15"));
}
return result;
}
@@ -75,19 +70,13 @@
}
try {
int i = f("hello"); // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result = 1;
- Expect.equals("int", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("function result", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(74, error.line);
- Expect.equals(14, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'int'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("function result")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:69:14"));
}
return result;
}
@@ -97,19 +86,13 @@
int result = 0;
try {
field = "hello"; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result = 1;
- Expect.equals("int", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("field", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(99, error.line);
- Expect.equals(15, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'int'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("'field'")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:88:15"));
}
return result;
}
@@ -121,19 +104,13 @@
anyFunction = f; // No error.
try {
int i = f; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result = 1;
- Expect.equals("int", error.dstType);
- Expect.equals("() => dynamic", error.srcType);
- Expect.equals("i", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(123, error.line);
- Expect.equals(15, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'int'")); // dstType
+ Expect.isTrue(msg.contains("'() => dynamic'")); // srcType
+ Expect.isTrue(msg.contains("'i'")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:106:15"));
}
return result;
}
@@ -152,19 +129,13 @@
acceptObjFunObj(objFunObj);
try {
acceptObjFunObj(voidFunObj); // Throws a TypeError.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result = 1;
- Expect.equals("(Object) => Object", error.dstType);
- Expect.equals("(Object) => void", error.srcType);
- Expect.equals("objFunObj", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(145, error.line);
- Expect.equals(33, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'(Object) => Object'")); // dstType
+ Expect.isTrue(msg.contains("'(Object) => void'")); // srcType
+ Expect.isTrue(msg.contains("'objFunObj'")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:122:33"));
}
return result;
}
@@ -186,19 +157,13 @@
acceptFunNum(funInt); // No error.
try {
acceptFunNum(funString); // Throws an error.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result = 1;
- Expect.equals("(num) => void", error.dstType);
- Expect.equals("(String) => void", error.srcType);
- Expect.equals("funNum", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(175, error.line);
- Expect.equals(28, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'(num) => void'")); // dstType
+ Expect.isTrue(msg.contains("'(String) => void'")); // srcType
+ Expect.isTrue(msg.contains("'funNum'")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:146:28"));
}
return result;
}
@@ -207,147 +172,93 @@
int result = 0;
try {
bool i = !"hello"; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(209, error.line);
- Expect.equals(17, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:174:17"));
}
try {
while ("hello") {}; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(225, error.line);
- Expect.equals(14, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:184:14"));
}
try {
do {} while ("hello"); // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(241, error.line);
- Expect.equals(20, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:194:20"));
}
try {
for (;"hello";) {}; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(257, error.line);
- Expect.equals(13, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:204:13"));
}
try {
int i = "hello" ? 1 : 0; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(273, error.line);
- Expect.equals(15, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:214:15"));
}
try {
if ("hello") {}; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(289, error.line);
- Expect.equals(11, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:224:11"));
}
try {
if ("hello" || false) {}; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(305, error.line);
- Expect.equals(11, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:234:11"));
}
try {
if (false || "hello") {}; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("String", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(321, error.line);
- Expect.equals(20, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'String'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:244:20"));
}
try {
if (null) {}; // Throws a TypeError if type checks are enabled.
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("bool", error.dstType);
- Expect.equals("Null", error.srcType);
- Expect.equals("boolean expression", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(337, error.line);
- Expect.equals(11, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'bool'")); // dstType
+ Expect.isTrue(msg.contains("'Null'")); // srcType
+ Expect.isTrue(msg.contains("boolean expression")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:254:11"));
}
return result;
}
@@ -357,19 +268,13 @@
int result = 0;
try {
var x = new C();
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("C", error.dstType);
- Expect.equals("int", error.srcType);
- Expect.equals("function result", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(560, error.line);
- Expect.equals(12, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'C'")); // dstType
+ Expect.isTrue(msg.contains("'int'")); // srcType
+ Expect.isTrue(msg.contains("function result")); // dstName
+ Expect.isTrue(stacktrace.toString().contains("type_vm_test.dart:11:12"));
}
return result;
}
@@ -390,51 +295,36 @@
List<Object> ao = a;
try {
List<int> ai = a;
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("List<int>", error.dstType);
- Expect.equals("List<Object>", error.srcType);
- Expect.equals("ai", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(392, error.line);
- Expect.equals(24, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'List<int>'")); // dstType
+ Expect.isTrue(msg.contains("'List<Object>'")); // srcType
+ Expect.isTrue(msg.contains("'ai'")); // dstName
+ Expect.isTrue(
+ stacktrace.toString().contains("type_vm_test.dart:297:24"));
}
try {
List<num> an = a;
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("List<num>", error.dstType);
- Expect.equals("List<Object>", error.srcType);
- Expect.equals("an", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(408, error.line);
- Expect.equals(24, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'List<num>'")); // dstType
+ Expect.isTrue(msg.contains("'List<Object>'")); // srcType
+ Expect.isTrue(msg.contains("'an'")); // dstName
+ Expect.isTrue(
+ stacktrace.toString().contains("type_vm_test.dart:308:24"));
}
try {
List<String> as = a;
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("List<String>", error.dstType);
- Expect.equals("List<Object>", error.srcType);
- Expect.equals("as", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(424, error.line);
- Expect.equals(27, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'List<String>'")); // dstType
+ Expect.isTrue(msg.contains("'List<Object>'")); // srcType
+ Expect.isTrue(msg.contains("'as'")); // dstName
+ Expect.isTrue(
+ stacktrace.toString().contains("type_vm_test.dart:319:27"));
}
}
{
@@ -445,19 +335,14 @@
List<num> an = a;
try {
List<String> as = a;
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("List<String>", error.dstType);
- Expect.equals("List<int>", error.srcType);
- Expect.equals("as", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(447, error.line);
- Expect.equals(27, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'List<String>'")); // dstType
+ Expect.isTrue(msg.contains("'List<int>'")); // srcType
+ Expect.isTrue(msg.contains("'as'")); // dstName
+ Expect.isTrue(
+ stacktrace.toString().contains("type_vm_test.dart:337:27"));
}
}
{
@@ -466,36 +351,26 @@
List<Object> ao = a;
try {
List<int> ai = a;
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("List<int>", error.dstType);
- Expect.equals("List<num>", error.srcType);
- Expect.equals("ai", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(468, error.line);
- Expect.equals(24, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'List<int>'")); // dstType
+ Expect.isTrue(msg.contains("'List<num>'")); // srcType
+ Expect.isTrue(msg.contains("'ai'")); // dstName
+ Expect.isTrue(
+ stacktrace.toString().contains("type_vm_test.dart:353:24"));
}
List<num> an = a;
try {
List<String> as = a;
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("List<String>", error.dstType);
- Expect.equals("List<num>", error.srcType);
- Expect.equals("as", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(485, error.line);
- Expect.equals(27, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'List<String>'")); // dstType
+ Expect.isTrue(msg.contains("'List<num>'")); // srcType
+ Expect.isTrue(msg.contains("'as'")); // dstName
+ Expect.isTrue(
+ stacktrace.toString().contains("type_vm_test.dart:365:27"));
}
}
{
@@ -504,35 +379,25 @@
List<Object> ao = a;
try {
List<int> ai = a;
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("List<int>", error.dstType);
- Expect.equals("List<String>", error.srcType);
- Expect.equals("ai", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(506, error.line);
- Expect.equals(24, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'List<int>'")); // dstType
+ Expect.isTrue(msg.contains("'List<String>'")); // srcType
+ Expect.isTrue(msg.contains("'ai'")); // dstName
+ Expect.isTrue(
+ stacktrace.toString().contains("type_vm_test.dart:381:24"));
}
try {
List<num> an = a;
- } on TypeError catch (error) {
+ } on TypeError catch (error, stacktrace) {
result++;
- Expect.equals("List<num>", error.dstType);
- Expect.equals("List<String>", error.srcType);
- Expect.equals("an", error.dstName);
- int pos = error.url.lastIndexOf("/", error.url.length);
- if (pos == -1) {
- pos = error.url.lastIndexOf("\\", error.url.length);
- }
- String subs = error.url.substring(pos + 1, error.url.length);
- Expect.equals("type_vm_test.dart", subs);
- Expect.equals(522, error.line);
- Expect.equals(24, error.column);
+ var msg = error.toString();
+ Expect.isTrue(msg.contains("'List<num>'")); // dstType
+ Expect.isTrue(msg.contains("'List<String>'")); // srcType
+ Expect.isTrue(msg.contains("'an'")); // dstName
+ Expect.isTrue(
+ stacktrace.toString().contains("type_vm_test.dart:392:24"));
}
List<String> as = a;
}
@@ -554,14 +419,6 @@
}
}
-
-class C {
- factory C() {
- return 1; // Implicit result type is 'C', not int.
- }
-}
-
-
main() {
TypeTest.testMain();
}

Powered by Google App Engine
This is Rietveld 408576698