| Index: tests/language/src/TypeVMTest.dart
|
| diff --git a/tests/language/src/TypeVMTest.dart b/tests/language/src/TypeVMTest.dart
|
| deleted file mode 100644
|
| index 5caf5bd7f9010a3819159bf6c6b27f1e33efd9d8..0000000000000000000000000000000000000000
|
| --- a/tests/language/src/TypeVMTest.dart
|
| +++ /dev/null
|
| @@ -1,479 +0,0 @@
|
| -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -// VMOptions=--enable_type_checks --enable_asserts
|
| -//
|
| -// Dart test program testing type checks.
|
| -
|
| -class TypeTest {
|
| - static test() {
|
| - int result = 0;
|
| - try {
|
| - int i = "hello"; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result = 1;
|
| - Expect.equals("int", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(12, error.line);
|
| - Expect.equals(15, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testSideEffect() {
|
| - int result = 0;
|
| - int index() {
|
| - result++;
|
| - return 0;
|
| - }
|
| - try {
|
| - List<int> a = new List<int>(1);
|
| - a[0] = 0;
|
| - a[index()]++; // Type check succeeds, but does not create side effects.
|
| - assert(a[0] == 1);
|
| - } catch (TypeError error) {
|
| - result = 100;
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testArgument() {
|
| - int result = 0;
|
| - int f(int i) {
|
| - return i;
|
| - }
|
| - try {
|
| - int i = f("hello"); // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result = 1;
|
| - Expect.equals("int", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(49, error.line);
|
| - Expect.equals(15, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testReturn() {
|
| - int result = 0;
|
| - int f(String s) {
|
| - return s;
|
| - }
|
| - try {
|
| - int i = f("hello"); // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result = 1;
|
| - Expect.equals("int", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(74, error.line);
|
| - Expect.equals(14, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static int field;
|
| - static testField() {
|
| - int result = 0;
|
| - try {
|
| - field = "hello"; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result = 1;
|
| - Expect.equals("int", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(99, error.line);
|
| - Expect.equals(15, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testAnyFunction() {
|
| - int result = 0;
|
| - Function anyFunction;
|
| - f() { };
|
| - anyFunction = f; // No error.
|
| - try {
|
| - int i = f; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - 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("TypeVMTest.dart", subs);
|
| - Expect.equals(123, error.line);
|
| - Expect.equals(15, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testVoidFunction() {
|
| - int result = 0;
|
| - Function anyFunction;
|
| - void acceptVoidFunObj(void voidFunObj(Object obj)) { };
|
| - void acceptObjFunObj(Object objFunObj(Object obj)) { };
|
| - void voidFunObj(Object obj) { };
|
| - Object objFunObj(Object obj) { return obj; };
|
| - anyFunction = voidFunObj; // No error.
|
| - anyFunction = objFunObj; // No error.
|
| - acceptVoidFunObj(voidFunObj);
|
| - acceptVoidFunObj(objFunObj);
|
| - acceptObjFunObj(objFunObj);
|
| - try {
|
| - acceptObjFunObj(voidFunObj); // Throws a TypeError.
|
| - } catch (TypeError error) {
|
| - 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("TypeVMTest.dart", subs);
|
| - Expect.equals(145, error.line);
|
| - Expect.equals(33, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testFunctionNum() {
|
| - int result = 0;
|
| - Function anyFunction;
|
| - void acceptFunNum(void funNum(num num)) { };
|
| - void funObj(Object obj) { };
|
| - void funNum(num num) { };
|
| - void funInt(int i) { };
|
| - void funString(String s) { };
|
| - anyFunction = funObj; // No error.
|
| - anyFunction = funNum; // No error.
|
| - anyFunction = funInt; // No error.
|
| - anyFunction = funString; // No error.
|
| - acceptFunNum(funObj); // No error.
|
| - acceptFunNum(funNum); // No error.
|
| - acceptFunNum(funInt); // No error.
|
| - try {
|
| - acceptFunNum(funString); // Throws an error.
|
| - } catch (TypeError error) {
|
| - 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("TypeVMTest.dart", subs);
|
| - Expect.equals(175, error.line);
|
| - Expect.equals(28, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testBoolCheck() {
|
| - int result = 0;
|
| - try {
|
| - bool i = !"hello"; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result++;
|
| - Expect.equals("bool", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(209, error.line);
|
| - Expect.equals(17, error.column);
|
| - }
|
| - try {
|
| - while ("hello") {}; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result++;
|
| - Expect.equals("bool", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(225, error.line);
|
| - Expect.equals(14, error.column);
|
| - }
|
| - try {
|
| - do {} while ("hello"); // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result++;
|
| - Expect.equals("bool", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(241, error.line);
|
| - Expect.equals(20, error.column);
|
| - }
|
| - try {
|
| - for (;"hello";) {}; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result++;
|
| - Expect.equals("bool", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(257, error.line);
|
| - Expect.equals(13, error.column);
|
| - }
|
| - try {
|
| - int i = "hello" ? 1 : 0; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result++;
|
| - Expect.equals("bool", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(273, error.line);
|
| - Expect.equals(15, error.column);
|
| - }
|
| - try {
|
| - if ("hello") {}; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result++;
|
| - Expect.equals("bool", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(289, error.line);
|
| - Expect.equals(11, error.column);
|
| - }
|
| - try {
|
| - if ("hello" || false) {}; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result++;
|
| - Expect.equals("bool", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(305, error.line);
|
| - Expect.equals(11, error.column);
|
| - }
|
| - try {
|
| - if (false || "hello") {}; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - result++;
|
| - Expect.equals("bool", error.dstType);
|
| - Expect.equals("OneByteString", 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("TypeVMTest.dart", subs);
|
| - Expect.equals(321, error.line);
|
| - Expect.equals(20, error.column);
|
| - }
|
| - try {
|
| - if (null) {}; // Throws a TypeError if type checks are enabled.
|
| - } catch (TypeError error) {
|
| - 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("TypeVMTest.dart", subs);
|
| - Expect.equals(337, error.line);
|
| - Expect.equals(11, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| -
|
| - static int testFactory() {
|
| - int result = 0;
|
| - try {
|
| - var x = new C();
|
| - } catch (TypeError error) {
|
| - 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("TypeVMTest.dart", subs);
|
| - Expect.equals(472, error.line);
|
| - Expect.equals(12, error.column);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static int testListAssigment() {
|
| - int result = 0;
|
| - {
|
| - var a = new List(5);
|
| - List a0 = a;
|
| - List<Object> ao = a;
|
| - List<int> ai = a;
|
| - List<num> an = a;
|
| - List<String> as = a;
|
| - }
|
| - {
|
| - var a = new List<Object>(5);
|
| - List a0 = a;
|
| - List<Object> ao = a;
|
| - try {
|
| - List<int> ai = a;
|
| - } catch (TypeError error) {
|
| - result++;
|
| - }
|
| - try {
|
| - List<num> an = a;
|
| - } catch (TypeError error) {
|
| - result++;
|
| - }
|
| - try {
|
| - List<String> as = a;
|
| - } catch (TypeError error) {
|
| - result++;
|
| - }
|
| - }
|
| - {
|
| - var a = new List<int>(5);
|
| - List a0 = a;
|
| - List<Object> ao = a;
|
| - List<int> ai = a;
|
| - List<num> an = a;
|
| - try {
|
| - List<String> as = a;
|
| - } catch (TypeError error) {
|
| - result++;
|
| - }
|
| - }
|
| - {
|
| - var a = new List<num>(5);
|
| - List a0 = a;
|
| - List<Object> ao = a;
|
| - try {
|
| - List<int> ai = a;
|
| - } catch (TypeError error) {
|
| - result++;
|
| - }
|
| - List<num> an = a;
|
| - try {
|
| - List<String> as = a;
|
| - } catch (TypeError error) {
|
| - result++;
|
| - }
|
| - }
|
| - {
|
| - var a = new List<String>(5);
|
| - List a0 = a;
|
| - List<Object> ao = a;
|
| - try {
|
| - List<int> ai = a;
|
| - } catch (TypeError error) {
|
| - result++;
|
| - }
|
| - try {
|
| - List<num> an = a;
|
| - } catch (TypeError error) {
|
| - result++;
|
| - }
|
| - List<String> as = a;
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testMain() {
|
| - Expect.equals(1, test());
|
| - Expect.equals(1, testSideEffect());
|
| - Expect.equals(1, testArgument());
|
| - Expect.equals(1, testReturn());
|
| - Expect.equals(1, testField());
|
| - Expect.equals(1, testAnyFunction());
|
| - Expect.equals(1, testVoidFunction());
|
| - Expect.equals(1, testFunctionNum());
|
| - Expect.equals(9, testBoolCheck());
|
| - Expect.equals(1, testFactory());
|
| - Expect.equals(8, testListAssigment());
|
| - }
|
| -}
|
| -
|
| -
|
| -class C {
|
| - factory C() {
|
| - return 1; // Implicit result type is 'C', not int.
|
| - }
|
| -}
|
| -
|
| -
|
| -main() {
|
| - TypeTest.testMain();
|
| -}
|
|
|