| // 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. |
| |
| import 'dart:async'; |
| import 'package:expect/expect.dart'; |
| |
| get b => 499; |
| @pragma('dart2js:noInline') |
| get b_noInline => b; |
| const b0 = 499 is FutureOr<int>; |
| final b1 = 499 is FutureOr<int>; |
| get b2 => 499 is FutureOr<int>; |
| get b3 => b is FutureOr<int>; |
| get b4 => b_noInline is FutureOr<int>; |
| |
| get c => 499; |
| @pragma('dart2js:noInline') |
| get c_noInline => c; |
| const c0 = 499 is FutureOr<FutureOr<int>>; |
| final c1 = 499 is FutureOr<FutureOr<int>>; |
| get c2 => 499 is FutureOr<FutureOr<int>>; |
| get c3 => c is FutureOr<FutureOr<int>>; |
| get c4 => c_noInline is FutureOr<FutureOr<int>>; |
| |
| get d => 499.0; |
| @pragma('dart2js:noInline') |
| get d_noInline => d; |
| const d0 = 499.0 is FutureOr<int>; |
| final d1 = 499.0 is FutureOr<int>; |
| get d2 => 499.0 is FutureOr<int>; |
| get d3 => d is FutureOr<int>; |
| get d4 => d_noInline is FutureOr<int>; |
| |
| get e => 499; |
| @pragma('dart2js:noInline') |
| get e_noInline => e; |
| const e0 = 499 is FutureOr<double>; |
| final e1 = 499 is FutureOr<double>; |
| get e2 => 499 is FutureOr<double>; |
| get e3 => e is FutureOr<double>; |
| get e4 => e_noInline is FutureOr<double>; |
| |
| get f => 499; |
| @pragma('dart2js:noInline') |
| get f_noInline => f; |
| const f0 = 499 is FutureOr<FutureOr<double>>; |
| final f1 = 499 is FutureOr<FutureOr<double>>; |
| get f2 => 499 is FutureOr<FutureOr<double>>; |
| get f3 => f is FutureOr<FutureOr<double>>; |
| get f4 => f_noInline is FutureOr<FutureOr<double>>; |
| |
| test(fromConst, fromFinal, fromImplicitConstant, fromInlined, fromRuntime) { |
| Expect.equals(fromRuntime, fromConst); |
| Expect.equals(fromRuntime, fromFinal); |
| Expect.equals(fromRuntime, fromInlined); |
| Expect.equals(fromRuntime, fromImplicitConstant); |
| } |
| |
| main() { |
| test(b0, b1, b2, b3, b4); |
| test(c0, c1, c2, c3, c4); |
| test(d0, d1, d2, d3, d4); |
| test(e0, e1, e2, e3, e4); |
| test(f0, f1, f2, f3, f4); |
| } |