blob: 1c406f5748ec4726a4bcaf8eb73e27bfec16fc4f [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.
// The tests in this file verify that implicit downcasts *don't* cause
// promotions.
f(int i) {}
assignment(int i, dynamic d) {
i = d;
d;
}
nullAwareAssignment(int i, dynamic d) {
i ??= d;
d;
}
compoundAssignment(num n, dynamic d) {
n += d;
d;
}
initialization(dynamic d) {
int i = d;
d;
}
parameter(dynamic d) {
f(d);
d;
}
ifCondition(dynamic d) {
if (d) {}
d;
}
ifCondition_then(dynamic d) {
if (d) {
d;
}
}
ifCondition_return(dynamic d) {
if (d) return;
d;
}
ifElementCondition(dynamic d) {
[if (d) null];
d;
}
ifElementCondition_then(dynamic d) {
[if (d) d];
}
forCondition(dynamic d) {
for (; d;) {}
d;
}
forCondition_body(dynamic d) {
for (; d;) {
d;
}
}
forElementCondition(dynamic d) {
[for (; d;) null];
d;
}
forElementCondition_body(dynamic d) {
[for (; d;) d];
}
forEachIterable(dynamic d) {
for (var item in d) {}
d;
}
forEachIterable_body(dynamic d) {
for (var item in d) {
d;
}
}
forEachElementIterable(dynamic d) {
[for (var item in d) null];
d;
}
forEachElementIterable_body(dynamic d) {
[for (var item in d) d];
}
whileCondition(dynamic d) {
while (d) {}
d;
}
whileCondition_body(dynamic d) {
while (d) {
d;
}
}
doCondition(dynamic d) {
do {} while (d);
d;
}
conditionalCondition(dynamic d) {
d ? null : null;
d;
}
conditionalCondition_thenElse(dynamic d) {
d ? d : d;
}
andLhs(dynamic d, bool b) {
d && b;
d;
}
andRhs(dynamic d, bool b) {
b && d;
d;
}
andBoth(dynamic d, bool b) {
d && d;
}
orLhs(dynamic d, bool b) {
d || b;
d;
}
orRhs(dynamic d, bool b) {
b || d;
d;
}
orBotn(dynamic d, bool b) {
d || d;
}
logicalNot(dynamic d, bool b) {
!d;
d;
}
await_(dynamic d) async {
await d;
d;
}