blob: c41e41a02fdbd4244acdeaef5feb3a57e7fdff76 [file] [log] [blame]
# 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.md file.
# Reproduce a inconsistency on recompile.
# Currently the first compile produces
#
# abstract class _A&B&C&D extends main::_A&B&C implements main::D /*isAnonymousMixin,isEliminatedMixin*/ {
# synthetic constructor named(dynamic _field) → main::_A&B&C&D*
# : super main::_A&B&C::named(_field)
# ;
# }
#
# and the second compile produces
# abstract class _A&B&C&D extends main::_A&B&C implements main::D /*isAnonymousMixin,isEliminatedMixin*/ {
# synthetic constructor named(lib::E* _field) → main::_A&B&C&D*
# : super main::_A&B&C::named(_field)
# ;
# }
#
# i.e. the `field` goes from type `dynamic` to type `lib::E*`.
type: newworld
worlds:
- entry: main.dart
sources:
main.dart: |
// @dart=2.9
import 'lib.dart';
class A extends B with C, D {
A(E parameter) : super.named(parameter);
}
mixin C { }
mixin D { }
lib.dart: |
// @dart=2.9
class E {}
abstract class B {
final E _field;
B.named(this._field);
}
expectedLibraryCount: 2
- entry: main.dart
worldType: updated
expectInitializeFromDill: false
invalidate:
- main.dart
expectedLibraryCount: 2
expectsRebuildBodiesOnly: false