| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| import "org-dartlang-testcase:///const_is_lib.dart"; |
| |
| static method main() → dynamic { |
| self::expect(true, (#C1) is{ForNonNullableByDefault} <T extends core::Object?>() → void); |
| self::expect(true, #C2); |
| self::expect(true, (#C3) is{ForNonNullableByDefault} <T extends Never = dynamic>() → void); |
| self::expect(true, #C2); |
| } |
| static method expect(dynamic expected, dynamic actual) → dynamic { |
| if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) |
| throw "Expected ${expected}, actual ${actual}"; |
| } |
| |
| library /*isNonNullableByDefault*/; |
| import self as self2; |
| import "dart:core" as core; |
| |
| typedef fnTypeWithNullableObjectBound = <T extends core::Object?>() → void; |
| typedef fnTypeWithNeverBound = <T extends Never = dynamic>() → void; |
| static method fnWithNonNullObjectBound<T extends core::Object>() → void |
| return null; |
| static method fnWithNullBound<T extends Null>() → void |
| return null; |
| |
| constants { |
| #C1 = tearoff self2::fnWithNonNullObjectBound |
| #C2 = true |
| #C3 = tearoff self2::fnWithNullBound |
| } |
| |
| Extra constant evaluation status: |
| Evaluated: IsExpression @ org-dartlang-testcase:///const_is.dart:13:41 -> BoolConstant(true) |
| Evaluated: IsExpression @ org-dartlang-testcase:///const_is.dart:20:32 -> BoolConstant(true) |
| Extra constant evaluation: evaluated: 14, effectively constant: 2 |