blob: 9fc28358032d1c3fe45ad013bcc3394d5fceda31 [file] [log] [blame]
// Copyright (c) 2019, 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.7
main() {
closure6(null);
closure7();
}
class A {}
class B extends A {
f() {}
}
_returnTrue(_) => true;
closure6(var x) {
var closure;
/*{}*/ x is B && _returnTrue(closure = () => /*{}*/ x.f());
/*{}*/ x;
x = new A();
/*{}*/ closure();
/*{}*/ x;
}
class C {}
class D extends C {
f() {}
}
class E extends D {
g() {}
}
_closure7(C x) {
/*{}*/ x is D && _returnTrue((() => /*{}*/ x)())
? /*{x:[{true:D}|D]}*/ x.f()
: x = new C();
_returnTrue((() => /*{}*/ x)()) && /*{}*/ x is D
? /*{x:[{true:D}|D]}*/ x.f()
: x = new C();
(/*{}*/ x is D && _returnTrue((() => /*{}*/ x)())) &&
(/*{x:[{true:D}|D]}*/ x is E && _returnTrue((() => /*{}*/ x)()))
? /*{x:[{true:D,E}|D,E]}*/ x.g()
: x = new C();
(_returnTrue((() => /*{}*/ x)()) && /*{}*/ x is E) &&
(_returnTrue((() => /*{}*/ x)()) && /*{x:[{true:E}|E]}*/ x is D)
? /*{x:[{true:E,D}|E,D]}*/ x.g()
: x = new C();
}
closure7() {
_closure7(new D());
_closure7(new E());
}