| Index: tests/language/cast_test.dart
 | 
| diff --git a/tests/language/cast_test.dart b/tests/language/cast_test.dart
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..b73d3c63e55aae69456c574049b3a2295386e448
 | 
| --- /dev/null
 | 
| +++ b/tests/language/cast_test.dart
 | 
| @@ -0,0 +1,74 @@
 | 
| +// Copyright (c) 2012, 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.
 | 
| +// Dart test program for constructors and initializers.
 | 
| +
 | 
| +// Test 'expression as Type' casts.
 | 
| +
 | 
| +class C {
 | 
| +  final int foo = 42;
 | 
| +}
 | 
| +
 | 
| +class D extends C {
 | 
| +  final int bar = 37;
 | 
| +}
 | 
| +
 | 
| +Object createC() => new C();
 | 
| +Object createD() => new D();
 | 
| +Object getNull() => null;
 | 
| +Object createList() => <int>[2];
 | 
| +Object createInt() => 87;
 | 
| +Object createString() => "a string";
 | 
| +
 | 
| +main() {
 | 
| +  Object oc = createC();
 | 
| +  Object od = createD();
 | 
| +  Object on = getNull();
 | 
| +  Object ol = createList();
 | 
| +  Object oi = createInt();
 | 
| +  Object os = createString();
 | 
| +
 | 
| +  Expect.equals(42, (oc as C).foo);
 | 
| +  Expect.equals(42, (od as C).foo);
 | 
| +  Expect.equals(42, (od as D).foo);
 | 
| +  Expect.equals(37, (od as D).bar);
 | 
| +  Expect.equals(37, ((od as C) as D).bar);
 | 
| +  (oc as D).foo;  /// 01: runtime error
 | 
| +  (on as D).toString();
 | 
| +  (on as D).foo;  /// 02: runtime error
 | 
| +  (on as C).foo;  /// 03: runtime error
 | 
| +  oc.foo;  /// 04: static type warning
 | 
| +  od.foo;  /// 05: static type warning
 | 
| +  (on as Object).toString();
 | 
| +  (oc as Object).toString();
 | 
| +  (od as Object).toString();
 | 
| +  (on as Dynamic).toString();
 | 
| +  (on as Dynamic).foo;  /// 07: runtime error
 | 
| +  (oc as Dynamic).foo;
 | 
| +  (od as Dynamic).foo;
 | 
| +  (oc as Dynamic).bar;  /// 08: runtime error
 | 
| +  (od as Dynamic).bar;
 | 
| +  C c = oc as C;
 | 
| +  c = od as C;
 | 
| +  c = oc;
 | 
| +  D d = od as D;
 | 
| +  d = oc as D;  /// 10: runtime error
 | 
| +  d = od;
 | 
| +
 | 
| +  (ol as List)[0];
 | 
| +  (ol as List<int>)[0];
 | 
| +  (ol as Dynamic)[0];
 | 
| +  (ol as String).length;  /// 12: runtime error
 | 
| +  int x = (ol as List<int>)[0];
 | 
| +  (ol as List<int>)[0] = (oi as int);
 | 
| +
 | 
| +  (os as String).length;
 | 
| +  (os as Dynamic).length;
 | 
| +  (oi as String).length;  /// 13: runtime error
 | 
| +  (os as List).length;  /// 14: runtime error
 | 
| +
 | 
| +  (oi as int) + 2;
 | 
| +  (oi as List).length;  /// 15: runtime error
 | 
| +}
 | 
| +
 | 
| +
 | 
| 
 |