| library; |
| import self as self; |
| import "never_opt_out_lib.dart" as nev; |
| import "dart:core" as core; |
| |
| import "org-dartlang-testcase:///never_opt_out_lib.dart"; |
| |
| class B extends nev::A { |
| field core::Null? neverField = null; |
| field core::Null? nullField = null; |
| synthetic constructor •() → self::B* |
| : super nev::A::•() |
| ; |
| method neverMethod(core::Null? value) → core::Null? |
| return value; |
| get neverProperty() → core::Null? |
| return null; |
| set neverProperty(core::Null? value) → void {} |
| method nullMethod(core::Null? value) → core::Null? |
| return value; |
| get nullProperty() → core::Null? |
| return null; |
| set nullProperty(core::Null? value) → void {} |
| abstract member-signature get _identityHashCode() → core::int*; |
| abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; |
| abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; |
| abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; |
| abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; |
| abstract member-signature operator ==(dynamic other) → core::bool*; |
| abstract member-signature get hashCode() → core::int*; |
| abstract member-signature method toString() → core::String*; |
| abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; |
| abstract member-signature get runtimeType() → core::Type*; |
| } |
| class C extends nev::A { |
| field Never* neverField = null; |
| field Never* nullField = null; |
| synthetic constructor •() → self::C* |
| : super nev::A::•() |
| ; |
| method neverMethod(Never* value) → Never* |
| return value; |
| get neverProperty() → Never* |
| return null; |
| set neverProperty(Never* value) → void {} |
| method nullMethod(Never* value) → Never* |
| return value; |
| get nullProperty() → Never* |
| return null; |
| set nullProperty(Never* value) → void {} |
| abstract member-signature get _identityHashCode() → core::int*; |
| abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; |
| abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; |
| abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; |
| abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; |
| abstract member-signature operator ==(dynamic other) → core::bool*; |
| abstract member-signature get hashCode() → core::int*; |
| abstract member-signature method toString() → core::String*; |
| abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; |
| abstract member-signature get runtimeType() → core::Type*; |
| } |
| static field Never* optOutNever; |
| static field dynamic inferredOptOutNever = nev::optInNever; |
| static method main() → dynamic { |
| Never* localNever = null; |
| core::Null? localNull = null; |
| dynamic inferredLocalNever = nev::optInNever; |
| localNever = localNever; |
| self::optOutNever = localNever; |
| nev::optInNever = localNever; |
| localNull = localNever; |
| self::inferredOptOutNever = localNever; |
| inferredLocalNever = localNever; |
| localNever = self::optOutNever; |
| self::optOutNever = self::optOutNever; |
| nev::optInNever = self::optOutNever as{TypeError} Never; |
| localNull = self::optOutNever; |
| self::inferredOptOutNever = self::optOutNever; |
| inferredLocalNever = self::optOutNever; |
| localNever = nev::optInNever; |
| self::optOutNever = nev::optInNever; |
| nev::optInNever = nev::optInNever as{TypeError} Never; |
| localNull = nev::optInNever; |
| self::inferredOptOutNever = nev::optInNever; |
| inferredLocalNever = nev::optInNever; |
| localNever = localNull; |
| self::optOutNever = localNull; |
| nev::optInNever = localNull as{TypeError} Never; |
| localNull = localNull; |
| self::inferredOptOutNever = localNull; |
| inferredLocalNever = localNull; |
| localNever = self::inferredOptOutNever as{TypeError,ForDynamic} Never*; |
| self::optOutNever = self::inferredOptOutNever as{TypeError,ForDynamic} Never*; |
| nev::optInNever = self::inferredOptOutNever as{TypeError,ForDynamic} Never; |
| localNull = self::inferredOptOutNever as{TypeError,ForDynamic} core::Null?; |
| self::inferredOptOutNever = self::inferredOptOutNever; |
| inferredLocalNever = self::inferredOptOutNever; |
| localNever = inferredLocalNever as{TypeError,ForDynamic} Never*; |
| self::optOutNever = inferredLocalNever as{TypeError,ForDynamic} Never*; |
| nev::optInNever = inferredLocalNever as{TypeError,ForDynamic} Never; |
| localNull = inferredLocalNever as{TypeError,ForDynamic} core::Null?; |
| self::inferredOptOutNever = inferredLocalNever; |
| inferredLocalNever = inferredLocalNever; |
| self::throws(() → core::Null? => self::optOutNever = nev::throwing()); |
| self::throws(() → core::Null? => localNever = nev::throwing()); |
| self::throws(() → core::Null? => self::optOutNever = nev::throwing()); |
| self::throws(() → core::Null? => nev::optInNever = nev::throwing() as{TypeError} Never); |
| self::throws(() → core::Null? => self::inferredOptOutNever = nev::throwing()); |
| self::throws(() → core::Null? => inferredLocalNever = nev::throwing()); |
| } |
| static method throws(() →* void f) → dynamic { |
| try { |
| f.call(); |
| } |
| on dynamic catch(final dynamic _) { |
| return; |
| } |
| throw "Expected exception"; |
| } |
| |
| library /*isNonNullableByDefault*/; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/nnbd_mixed/never_opt_out_lib.dart:19:28: Error: A value of type 'Type' can't be returned from a function with return type 'Null'. |
| // - 'Type' is from 'dart:core'. |
| // Null get nullProperty => Null; |
| // ^ |
| // |
| import self as nev; |
| import "dart:core" as core; |
| import "never_opt_out.dart" as self; |
| |
| import "org-dartlang-testcase:///never_opt_out.dart"; |
| |
| class A extends core::Object { |
| field Never neverField = throw "Should not reach here"; |
| field core::Null? nullField = null; |
| synthetic constructor •() → nev::A |
| : super core::Object::•() |
| ; |
| method neverMethod(Never value) → Never |
| return value; |
| get neverProperty() → Never |
| return throw "Should not reach here"; |
| set neverProperty(Never value) → void {} |
| method nullMethod(core::Null? value) → core::Null? |
| return value; |
| get nullProperty() → core::Null? |
| return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd_mixed/never_opt_out_lib.dart:19:28: Error: A value of type 'Type' can't be returned from a function with return type 'Null'. |
| - 'Type' is from 'dart:core'. |
| Null get nullProperty => Null; |
| ^" in core::Null? as{TypeError,ForNonNullableByDefault} core::Null?; |
| set nullProperty(core::Null? value) → void {} |
| } |
| static field Never optInNever = self::optOutNever; |
| static method throwing() → Never |
| return throw "Never!"; |