| // Copyright (c) 2021, 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 mixin overrides (dartbug.com/44636). |
| /// |
| /// Prior to the fix, B's initializer was accidentally being applied on the |
| /// overriden definition in C, and as a result, the program would stack |
| /// overflow. |
| import 'package:expect/expect.dart'; |
| |
| class A = B with C; |
| |
| mixin M {} |
| |
| abstract class B with M { |
| Object _test = "a"; |
| } |
| |
| mixin C on B, M { |
| @override |
| Object get _test => super._test; |
| |
| @override |
| set _test(Object value) { |
| super._test = value; |
| } |
| } |
| |
| main() => Expect.equals("a", A()._test); |