| 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 {} |
| } |
| 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 {} |
| } |
| static field Never* optOutNever; |
| static field core::Null? inferredOptOutNever = nev::optInNever; |
| static method main() → dynamic { |
| Never* localNever = null; |
| core::Null? localNull = null; |
| Never 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; |
| localNull = self::optOutNever; |
| self::inferredOptOutNever = self::optOutNever; |
| inferredLocalNever = self::optOutNever; |
| localNever = nev::optInNever; |
| self::optOutNever = nev::optInNever; |
| nev::optInNever = nev::optInNever; |
| 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 as{TypeError} Never; |
| localNever = self::inferredOptOutNever; |
| self::optOutNever = self::inferredOptOutNever; |
| nev::optInNever = self::inferredOptOutNever as{TypeError} Never; |
| localNull = self::inferredOptOutNever; |
| self::inferredOptOutNever = self::inferredOptOutNever; |
| inferredLocalNever = self::inferredOptOutNever as{TypeError} Never; |
| localNever = inferredLocalNever; |
| self::optOutNever = inferredLocalNever; |
| nev::optInNever = inferredLocalNever; |
| localNull = inferredLocalNever; |
| self::inferredOptOutNever = inferredLocalNever; |
| inferredLocalNever = inferredLocalNever; |
| self::throws(() → Never => self::optOutNever = nev::throwing()); |
| self::throws(() → Never => localNever = nev::throwing()); |
| self::throws(() → Never => self::optOutNever = nev::throwing()); |
| self::throws(() → Never => nev::optInNever = nev::throwing()); |
| self::throws(() → Never => self::inferredOptOutNever = nev::throwing()); |
| self::throws(() → Never => 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/never_opt_out_lib.dart:19:28: Warning: Assigning value of type 'Type' to a variable of 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 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!"; |