| // 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)); | |
| } | |
| } |