a1c54855a6
Change-Id: Id4ced6f3a54d40a3775b77fde8453e45a6383ee2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404800 Commit-Queue: Stephen Adams <sra@google.com> Reviewed-by: Nate Biggs <natebiggs@google.com>
184 lines
2.7 KiB
Dart
184 lines
2.7 KiB
Dart
// Copyright (c) 2025, 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.
|
|
|
|
@pragma('dart2js:never-inline')
|
|
/*member: foo1:function(x) {
|
|
return x;
|
|
}*/
|
|
Object? foo1(Object? x) {
|
|
final Object? y;
|
|
if (x is int) {
|
|
y = x;
|
|
} else if (x is String) {
|
|
y = x;
|
|
} else if (x is List) {
|
|
y = x;
|
|
} else {
|
|
y = x;
|
|
}
|
|
return y;
|
|
}
|
|
|
|
@pragma('dart2js:never-inline')
|
|
/*member: foo2:function(x) {
|
|
$label0$0: {
|
|
break $label0$0;
|
|
}
|
|
return x;
|
|
}*/
|
|
Object? foo2(Object? x) {
|
|
final Object? y;
|
|
L:
|
|
{
|
|
if (x is int) {
|
|
y = x;
|
|
break L;
|
|
}
|
|
if (x is String) {
|
|
if (x == 'hello') {
|
|
y = x;
|
|
break L;
|
|
} else {
|
|
y = x;
|
|
}
|
|
break L;
|
|
}
|
|
if (x is List) {
|
|
y = x;
|
|
break L;
|
|
}
|
|
y = x;
|
|
}
|
|
return y;
|
|
}
|
|
|
|
@pragma('dart2js:never-inline')
|
|
/*member: foo3:function(x) {
|
|
A.inscrutableBool(x);
|
|
return x;
|
|
}*/
|
|
Object? foo3(Object? x) {
|
|
final Object? y;
|
|
if (inscrutableBool(x)) {
|
|
switch (x) {
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
y = x;
|
|
case 4:
|
|
case 5:
|
|
y = x;
|
|
case 6:
|
|
y = x;
|
|
default:
|
|
y = x;
|
|
}
|
|
} else {
|
|
y = x;
|
|
}
|
|
return y;
|
|
}
|
|
|
|
@pragma('dart2js:never-inline')
|
|
/*member: foo4:function(x) {
|
|
if (A._isInt(x))
|
|
switch (x) {
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
}
|
|
return x;
|
|
}*/
|
|
Object? foo4(Object? x) {
|
|
final Object? y;
|
|
if (x is int) {
|
|
switch (x) {
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
y = x;
|
|
case 4:
|
|
case 5:
|
|
y = x;
|
|
case 6:
|
|
y = x;
|
|
default:
|
|
y = x;
|
|
}
|
|
} else {
|
|
y = x;
|
|
}
|
|
return y;
|
|
}
|
|
|
|
@pragma('dart2js:never-inline')
|
|
/*member: foo5:function(x) {
|
|
switch (x) {
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
}
|
|
return x;
|
|
}*/
|
|
Object? foo5(Object? x) {
|
|
final Object? y;
|
|
switch (x) {
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
if (2 == x) {
|
|
y = x;
|
|
} else {
|
|
y = x;
|
|
}
|
|
case 4:
|
|
case 5:
|
|
y = x;
|
|
case 6:
|
|
y = x;
|
|
default:
|
|
y = x;
|
|
}
|
|
return y;
|
|
}
|
|
|
|
/*member: inscrutableBool:ignore*/
|
|
@pragma('dart2js:never-inline')
|
|
bool inscrutableBool(Object? x) {
|
|
return x is int || x is bool;
|
|
}
|
|
|
|
/*member: main:ignore*/
|
|
main() {
|
|
for (final value in [
|
|
null,
|
|
1,
|
|
3.5,
|
|
true,
|
|
'a',
|
|
[],
|
|
{},
|
|
{1},
|
|
'x'.codeUnits,
|
|
]) {
|
|
print(foo1(value));
|
|
print(foo2(value));
|
|
print(foo3(value));
|
|
print(foo4(value));
|
|
print(foo5(value));
|
|
}
|
|
}
|