dart-sdk/tests/language/constructor_with_mixin_test.dart
fschneider@google.com d0ca8036a2 Fix VM bug with super-constructor invocation and mixins.
When using mixins, the constructor of a super-class was incorrectly
invoked twice if the super() call was not at the end of the initializer
list.

When generating the super constructor call in an implicit constructor, pass
along the phase parameter that comes in instead of invoking all phases.

BUG=dartbug.com/22604
TEST=tests/language/constructor_with_mixin_test.dart
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44242 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-04 18:02:40 +00:00

36 lines
655 B
Dart

// Copyright (c) 2015, 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.
// Test super constructor invocation with mixins.
// Regression test for issue dartbug.com/22604
import "package:expect/expect.dart";
var a_count = 0;
var b_count = 0;
class A {
final int x;
A(int this.x) {
a_count++;
}
}
class I { }
class B extends A with I {
int y;
B(int xx) : super(xx), y = 13 {
b_count++;
}
}
void main() {
var b = new B(17);
Expect.equals(1, a_count);
Expect.equals(1, b_count);
}