| Index: tests/language/inferrer_constructor3_test.dart
|
| ===================================================================
|
| --- tests/language/inferrer_constructor3_test.dart (revision 23735)
|
| +++ tests/language/inferrer_constructor3_test.dart (working copy)
|
| @@ -1,54 +0,0 @@
|
| -// Copyright (c) 2013, 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.
|
| -
|
| -// Regression test for dart2js that used to optimistically infer the
|
| -// wrong types for fields because of generative constructors being
|
| -// inlined.
|
| -
|
| -import "package:expect/expect.dart";
|
| -import "compiler_annotations.dart";
|
| -
|
| -class A {
|
| - var field;
|
| - A(this.field);
|
| -}
|
| -
|
| -var c = () => new List(42)[0];
|
| -
|
| -main() {
|
| - bar();
|
| - // Defeat type inferencing.
|
| - new A(c());
|
| - doIt();
|
| - bar();
|
| -}
|
| -
|
| -@DontInline
|
| -doIt() {
|
| - () => 42;
|
| - var c = new A(null);
|
| - Expect.throws(() => c.field + 42, (e) => e is NoSuchMethodError);
|
| -}
|
| -
|
| -@DontInline
|
| -bar() {
|
| - () => 42;
|
| - return inlineLevel1();
|
| -}
|
| -
|
| -inlineLevel1() {
|
| - return inlineLevel2();
|
| -}
|
| -
|
| -inlineLevel2() {
|
| - return inlineLevel3();
|
| -}
|
| -
|
| -inlineLevel3() {
|
| - return inlineLevel4();
|
| -}
|
| -
|
| -inlineLevel4() {
|
| - return new A(42);
|
| -}
|
|
|