// 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) { if (Date.now() > 0) { if (typeof x != "string") return "bad1"; } else if (typeof x != "string") return "bad2"; return x; }*/ String foo1(Object x) { final Object y; if (DateTime.now().millisecondsSinceEpoch > 0) { if (x is! String) return 'bad1'; y = x; } else { if (x is! String) return 'bad2'; y = x; } // The phi for y has refinements to String on both branches, so the return // should not need stringification. return '$y'; } /*member: main:ignore*/ main() { print(foo1('a')); print(foo1('b')); print(foo1(123)); }