Files
sdk/tests/language/inferrer_constructor4_test.dart
T
ngeoffray@google.com 4ca65d0ba4 Fix a bug in the type inferrer.
The optimization for non-final fields initialized in a generative constructor did not take into account whether the super constructor call escapes 'this', or uses an un-initialized field.

The fix is to ensure we analyze the super constructor first before analyzing a constructor.

R=lry@google.com

Review URL: https://codereview.chromium.org//61163005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30408 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-19 12:56:56 +00:00

27 lines
484 B
Dart

// 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.
import "package:expect/expect.dart";
escape(object) {
print(object.field + 42);
}
class A {
A() {
escape(this);
}
}
class B extends A {
var field;
B() {
field = 42;
}
}
main() {
Expect.throws(() => new B(), (e) => e is NoSuchMethodError);
}