mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 21:31:20 +00:00
d0ca8036a2
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
36 lines
655 B
Dart
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);
|
|
}
|
|
|