blob: 5797f5624dda66aaacd3381d204b40f428e970f1 [file] [log] [blame]
// Copyright (c) 2020, 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.6
// Import a null-safe library which defines several classes `B...`, each of
// which implements either `A<int>` or `A<int?>`, or in the case of `Bwm` and
// `Bwmq` which implement either `M<int>` or `M<int?>`, respectively. This
// library then declares legacy classes that create a superinterface conflict,
// e.g., by having both `A<int>` and `A<int?>` as indirect superinterfaces.
// The absence of errors in this test verifies that member signature
// compatibility in legacy libraries is done with respect to the nullability
// erased signatures.
import 'legacy_resolves_conflict_1_lib.dart';
// Naming conventions: This library iterates over all the ways a legacy class
// can have conflicting opted-in classes `B...` as superinterfaces. The ones
// that can be concrete are concrete. The resulting classes are simply named
// `C#` where `#` is a running counter (it doesn't seem helpful to encode the
// way in which each of them has said superinterfaces).
class C0 extends Be implements Beq {}
abstract class C1 implements Be, Beq {}
class C2 extends Be implements Biq {}
abstract class C3 implements Be, Biq {}
class C4 extends Be implements Bwcq {}
abstract class C5 implements Be, Bwcq {}
class C6 extends Be implements Bwmq {}
abstract class C7 implements Be, Bwmq {}
class C8 extends Bi implements Beq {}
abstract class C9 implements Bi, Beq {}
class C10 extends Bi implements Biq {}
abstract class C11 implements Bi, Biq {}
class C12 extends Bi implements Bwcq {}
abstract class C13 implements Bi, Bwcq {}
class C14 extends Bi implements Bwmq {}
abstract class C15 implements Bi, Bwmq {}
class C16 extends Bwc implements Beq {}
abstract class C17 implements Bwc, Beq {}
class C18 extends Bwc implements Biq {}
abstract class C19 implements Bwc, Biq {}
class C20 extends Bwc implements Bwcq {}
abstract class C21 implements Bwc, Bwcq {}
class C22 extends Bwc implements Bwmq {}
abstract class C23 implements Bwc, Bwmq {}
class C24 extends Bwm implements Beq {}
abstract class C25 implements Bwm, Beq {}
class C26 extends Bwm implements Biq {}
abstract class C27 implements Bwm, Biq {}
class C28 extends Bwm implements Bwcq {}
abstract class C29 implements Bwm, Bwcq {}
class C30 extends Bwm implements Bwmq {}
abstract class C31 implements Bwm, Bwmq {}
class C32 extends Beq implements Be {}
abstract class C33 implements Beq, Be {}
class C34 extends Beq implements Bi {}
abstract class C35 implements Beq, Bi {}
class C36 extends Beq implements Bwc {}
abstract class C37 implements Beq, Bwc {}
class C38 extends Beq implements Bwm {}
abstract class C39 implements Beq, Bwm {}
class C40 extends Biq implements Be {}
abstract class C41 implements Biq, Be {}
class C42 extends Biq implements Bi {}
abstract class C43 implements Biq, Bi {}
class C44 extends Biq implements Bwc {}
abstract class C45 implements Biq, Bwc {}
class C46 extends Biq implements Bwm {}
abstract class C47 implements Biq, Bwm {}
class C48 extends Bwcq implements Be {}
abstract class C49 implements Bwcq, Be {}
class C50 extends Bwcq implements Bi {}
abstract class C51 implements Bwcq, Bi {}
class C52 extends Bwcq implements Bwc {}
abstract class C53 implements Bwcq, Bwc {}
class C54 extends Bwcq implements Bwm {}
abstract class C55 implements Bwcq, Bwm {}
class C56 extends Bwmq implements Be {}
abstract class C57 implements Bwmq, Be {}
class C58 extends Bwmq implements Bi {}
abstract class C59 implements Bwmq, Bi {}
class C60 extends Bwmq implements Bwc {}
abstract class C61 implements Bwmq, Bwc {}
class C62 extends Bwmq implements Bwm {}
abstract class C63 implements Bwmq, Bwm {}