blob: 5c54faab6bccdef279956ac76a933a7d852b974c [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.
class A {}
class B {}
main() {
ifThen(null);
ifThenSequence(null);
ifThenElse(null);
ifThenElseSequence(null);
ifNotReturn(null);
nestedIf(null);
nestedIf2(null);
nestedIfNotReturn(null);
}
ifThen(o) {
/*{}*/ o;
if (/*{}*/ o is A) {
/*{o:[{true:A}|A]}*/ o;
}
/*{}*/ o;
}
ifThenSequence(o) {
/*{}*/ o;
if (/*{}*/ o is A) {
/*{o:[{true:A}|A]}*/ o;
}
/*{}*/ o;
if (/*{}*/ o is B) {
/*{o:[{true:B}|B]}*/ o;
}
/*{}*/ o;
}
ifThenElse(o) {
/*{}*/ o;
if (/*{}*/ o is A) {
/*{o:[{true:A}|A]}*/ o;
} else {
/*{o:[{false:A}|A]}*/ o;
}
/*{}*/ o;
}
ifThenElseSequence(o) {
/*{}*/ o;
if (/*{}*/ o is A) {
/*{o:[{true:A}|A]}*/ o;
} else {
/*{o:[{false:A}|A]}*/ o;
}
/*{}*/ o;
if (/*{}*/ o is B) {
/*{o:[{true:B}|B]}*/ o;
} else {
/*{o:[{false:B}|B]}*/ o;
}
/*{}*/ o;
}
ifNotReturn(o) {
/*{}*/ o;
if (/*{}*/ o is! A) {
return /*{o:[{false:A}|A]}*/ o;
}
/*{o:[{true:A}|A]}*/ o;
}
nestedIf(o) {
if (/*{}*/ o is A) {
if (/*{o:[{true:A}|A]}*/ o is B) {
return /*{o:[{true:A,B}|A,B]}*/ o;
}
}
/*{}*/ o;
}
nestedIf2(o) {
if (/*{}*/ o is A) {
if (/*{o:[{true:A}|A]}*/ o is B) {
return /*{o:[{true:A,B}|A,B]}*/ o;
}
} else if (/*{o:[{false:A}|A]}*/ o is B) {
/*{o:[{true:B,false:A}|A,B]}*/ o;
}
/*{}*/ o;
}
nestedIfNotReturn(o) {
if (/*{}*/ o is A) {
if (/*{o:[{true:A}|A]}*/ o is! B) {
return /*{o:[{true:A,false:B}|A,B]}*/ o;
}
/*{o:[{true:A,B}|A,B]}*/ o;
}
/*{}*/ o;
}