| Index: tests/language/type_vm_test.dart
|
| diff --git a/tests/language/type_vm_test.dart b/tests/language/type_vm_test.dart
|
| deleted file mode 100644
|
| index fda7b1ce3a78aa6b32d357d0bd68b1a867a36471..0000000000000000000000000000000000000000
|
| --- a/tests/language/type_vm_test.dart
|
| +++ /dev/null
|
| @@ -1,441 +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 --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) {
|
| - result = 1;
|
| - var msg = error.toString();
|
| - Expect.isTrue(msg.contains("'int'")); // dstType
|
| - Expect.isTrue(msg.contains("'String'")); // srcType
|
| - Expect.isTrue(msg.contains("'i'")); // dstName
|
| - Expect.isTrue(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:19:15"));
|
| - }
|
| - 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.
|
| - Expect.equals(1, a[0]);
|
| - } on TypeError catch (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.
|
| - } on TypeError catch (error) {
|
| - result = 1;
|
| - var msg = error.toString();
|
| - Expect.isTrue(msg.contains("'int'")); // dstType
|
| - Expect.isTrue(msg.contains("'String'")); // srcType
|
| - Expect.isTrue(msg.contains("'i'")); // dstName
|
| - Expect.isTrue(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:51:15"));
|
| - }
|
| - 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.
|
| - } on TypeError catch (error) {
|
| - result = 1;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:71:14"));
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static int field;
|
| - static testField() {
|
| - int result = 0;
|
| - try {
|
| - field = "hello"; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result = 1;
|
| - var msg = error.toString();
|
| - Expect.isTrue(msg.contains("'int'")); // dstType
|
| - Expect.isTrue(msg.contains("'String'")); // srcType
|
| - Expect.isTrue(msg.contains("'field'")); // dstName
|
| - Expect.isTrue(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:91:15"));
|
| - }
|
| - 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.
|
| - } on TypeError catch (error) {
|
| - result = 1;
|
| - var msg = error.toString();
|
| - Expect.isTrue(msg.contains("'int'")); // dstType
|
| - Expect.isTrue(msg.contains("'() => dynamic'")); // srcType
|
| - Expect.isTrue(msg.contains("'i'")); // dstName
|
| - Expect.isTrue(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:110:15"));
|
| - }
|
| - 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.
|
| - } on TypeError catch (error) {
|
| - result = 1;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:127:33"));
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testFunctionNum() {
|
| - int result = 0;
|
| - Function anyFunction;
|
| - void acceptFunNum(void funNum(num n)) { };
|
| - void funObj(Object obj) { };
|
| - void funNum(num n) { };
|
| - 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.
|
| - } on TypeError catch (error) {
|
| - result = 1;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:152:28"));
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static testBoolCheck() {
|
| - int result = 0;
|
| - try {
|
| - bool i = !"hello"; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:181:17"));
|
| - }
|
| - try {
|
| - while ("hello") {}; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:192:14"));
|
| - }
|
| - try {
|
| - do {} while ("hello"); // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:203:20"));
|
| - }
|
| - try {
|
| - for (;"hello";) {}; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:214:13"));
|
| - }
|
| - try {
|
| - int i = "hello" ? 1 : 0; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:225:15"));
|
| - }
|
| - try {
|
| - if ("hello") {}; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:236:11"));
|
| - }
|
| - try {
|
| - if ("hello" || false) {}; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:247:11"));
|
| - }
|
| - try {
|
| - if (false || "hello") {}; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:258:20"));
|
| - }
|
| - try {
|
| - if (null) {}; // Throws a TypeError if type checks are enabled.
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:269:11"));
|
| - }
|
| - return result;
|
| - }
|
| -
|
| -
|
| - static int testFactory() {
|
| - int result = 0;
|
| - try {
|
| - var x = new C();
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:11:12"));
|
| - }
|
| - 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;
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:314:24"));
|
| - }
|
| - try {
|
| - List<num> an = a;
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:325:24"));
|
| - }
|
| - try {
|
| - List<String> as = a;
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:336:27"));
|
| - }
|
| - }
|
| - {
|
| - 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;
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:354:27"));
|
| - }
|
| - }
|
| - {
|
| - var a = new List<num>(5);
|
| - List a0 = a;
|
| - List<Object> ao = a;
|
| - try {
|
| - List<int> ai = a;
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:370:24"));
|
| - }
|
| - List<num> an = a;
|
| - try {
|
| - List<String> as = a;
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:382:27"));
|
| - }
|
| - }
|
| - {
|
| - var a = new List<String>(5);
|
| - List a0 = a;
|
| - List<Object> ao = a;
|
| - try {
|
| - List<int> ai = a;
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:398:24"));
|
| - }
|
| - try {
|
| - List<num> an = a;
|
| - } on TypeError catch (error) {
|
| - result++;
|
| - 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(error.stackTrace.toString().contains(
|
| - "type_vm_test.dart:409:24"));
|
| - }
|
| - 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());
|
| - }
|
| -}
|
| -
|
| -main() {
|
| - TypeTest.testMain();
|
| -}
|
|
|