dart-sdk/tests/language/mixin_legacy/inference_mixin_field_test.dart
Jake Macdonald 2fc9ea5ad7 copy language/mixin tests to language/mixin_legacy with 2.19 opt out
Change-Id: Ice509ea1f0efec8153fb2380ab0e980fed552b0e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289580
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2023-03-20 17:29:31 +00:00

31 lines
627 B
Dart

// Copyright (c) 2023, 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=2.19
import "package:expect/expect.dart";
class Mixin {
var field;
createIt() {
if (field == null) field = 42;
}
}
class A {
A(foo);
}
class B extends A with Mixin {
// Because [super] references a synthesized constructor, dart2js
// used to not see the null assignment to it.
B(foo) : super(foo);
}
main() {
var a = new B(42);
a.createIt();
Expect.equals(42, a.field);
}