mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 21:11:19 +00:00
36641368bb
This changes ast-to-text to mark legacy libraries instead of non-nullable-by-default libraries. TEST=existing Change-Id: Ib01147e4ef48c2c5b2ffc6b23547998344dfdf2e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/307121 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Chloe Stefantsova <cstefantsova@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com>
71 lines
2.5 KiB
Plaintext
71 lines
2.5 KiB
Plaintext
library;
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
class Class<E extends core::Object? = dynamic> extends core::Object {
|
|
final field self::Class::E% field;
|
|
constructor •(self::Class::E% field) → self::Class<self::Class::E%>
|
|
: self::Class::field = field, super core::Object::•()
|
|
;
|
|
method returnTypeVariable() → self::Class::E% {
|
|
lowered has-declared-initializer self::Class::E? #result;
|
|
lowered core::bool #result#isSet = false;
|
|
function #result#get() → self::Class::E% {
|
|
if(!#result#isSet) {
|
|
#result = this.{self::Class::field}{self::Class::E%};
|
|
#result#isSet = true;
|
|
}
|
|
return #result{self::Class::E%};
|
|
}
|
|
function #result#set(self::Class::E% result#param) → dynamic {
|
|
#result#isSet = true;
|
|
return #result = result#param;
|
|
}
|
|
return #result#get(){() → self::Class::E%};
|
|
}
|
|
}
|
|
static method returnNonNullable(core::int value) → core::int {
|
|
lowered has-declared-initializer core::int? #result;
|
|
lowered core::bool #result#isSet = false;
|
|
function #result#get() → core::int {
|
|
if(!#result#isSet) {
|
|
#result = value;
|
|
#result#isSet = true;
|
|
}
|
|
return #result{core::int};
|
|
}
|
|
function #result#set(core::int result#param) → dynamic {
|
|
#result#isSet = true;
|
|
return #result = result#param;
|
|
}
|
|
return #result#get(){() → core::int};
|
|
}
|
|
static method returnNullable(core::int? value) → core::int? {
|
|
lowered has-declared-initializer core::int? #result;
|
|
lowered core::bool #result#isSet = false;
|
|
function #result#get() → core::int? {
|
|
if(!#result#isSet) {
|
|
#result = value;
|
|
#result#isSet = true;
|
|
}
|
|
return #result;
|
|
}
|
|
function #result#set(core::int? result#param) → dynamic {
|
|
#result#isSet = true;
|
|
return #result = result#param;
|
|
}
|
|
return #result#get(){() → core::int?};
|
|
}
|
|
static method main() → dynamic {
|
|
self::expect(42, new self::Class::•<core::int>(42).{self::Class::returnTypeVariable}(){() → core::int});
|
|
self::expect(87, new self::Class::•<core::int?>(87).{self::Class::returnTypeVariable}(){() → core::int?});
|
|
self::expect(null, new self::Class::•<core::int?>(null).{self::Class::returnTypeVariable}(){() → core::int?});
|
|
self::expect(42, self::returnNonNullable(42));
|
|
self::expect(87, self::returnNullable(87));
|
|
self::expect(null, self::returnNullable(null));
|
|
}
|
|
static method expect(dynamic expected, dynamic actual) → dynamic {
|
|
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
|
|
throw "Expected ${expected}, actual ${actual}";
|
|
}
|