blob: 620ed33ae076e9119124555aca93e277cf473155 [file] [log] [blame]
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!";