blob: 62d6f3d891ca3fabb0c42c9b3bf00d8373c21d03 [file] [log] [blame]
// 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.
sealed class S {
bool get b;
}
class A implements S {
final bool b;
A(this.b);
}
class B implements S {
final bool b;
B(this.b);
}
class C implements A, B {
bool get b => false;
}
int? value = 1;
int? method(
S s) => /*
checkingOrder={S,A,B},
error=non-exhaustive:A(b: false);B(b: false),
fields={b:bool},
subtypes={A,B},
type=S
*/
switch (s) {
A(b: true) as A /*space=A(b: true)|Null*/ => 0,
B(b: true) as B /*space=B(b: true)|Null*/ => value,
};
main() {
print(method(C()));
}