60702d4158
Changes fields to be either mutable or immutable by construction. This ensure that we don't create setter references for fields that cannot be assigned to and is a prerequisite for replacing @fields/ @fields= canonical names with @getters/@setters. TEST=existing expectation tests and verification Change-Id: I70b9a504ee6f221b7c334ac02620feb0d5f7ae01 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176665 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
26 lines
1.3 KiB
Plaintext
26 lines
1.3 KiB
Plaintext
library /*isNonNullableByDefault*/;
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
abstract class A<T extends core::Object? = dynamic> extends core::Object {
|
|
static final field dynamic _redirecting# = <dynamic>[self::A::•]/*isLegacy*/;
|
|
static factory •<T extends core::Object? = dynamic>(self::A::•::T% value) → self::A<self::A::•::T%>
|
|
let dynamic #redirecting_factory = self::_A::• in let self::A::•::T% #typeArg0 = null in invalid-expression;
|
|
}
|
|
class _A<T extends core::Object? = dynamic> extends core::Object implements self::A<self::_A::T%> {
|
|
constructor •(self::_A::T% value) → self::_A<self::_A::T%>
|
|
: super core::Object::•()
|
|
;
|
|
}
|
|
abstract class B<T extends core::Object? = dynamic> extends core::Object {
|
|
static final field dynamic _redirecting# = <dynamic>[self::B::•]/*isLegacy*/;
|
|
static factory •<T extends core::Object? = dynamic>(core::int value) → self::B<self::B::•::T%>
|
|
let dynamic #redirecting_factory = self::_B::• in let self::B::•::T% #typeArg0 = null in invalid-expression;
|
|
}
|
|
class _B<T extends core::Object? = dynamic> extends core::Object implements self::B<self::_B::T%> {
|
|
constructor •(core::int value) → self::_B<self::_B::T%>
|
|
: super core::Object::•()
|
|
;
|
|
}
|
|
static method main() → dynamic {}
|