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
820 B
Plaintext
26 lines
820 B
Plaintext
library /*isNonNullableByDefault*/;
|
|
//
|
|
// Problems in library:
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42844_2.dart:6:17: Error: Final field 'n' is not initialized.
|
|
// Try to initialize the field in the declaration or in every constructor.
|
|
// final dynamic n; // Error.
|
|
// ^
|
|
//
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
class C extends core::Object {
|
|
final field dynamic n = null;
|
|
static final field dynamic _redirecting# = <dynamic>[self::C::•]/*isLegacy*/;
|
|
static factory •(dynamic n) → self::C
|
|
let dynamic #redirecting_factory = self::D::• in invalid-expression;
|
|
}
|
|
class D extends core::Object implements self::C {
|
|
final field dynamic n;
|
|
constructor •(dynamic n) → self::D
|
|
: self::D::n = n, super core::Object::•()
|
|
;
|
|
}
|
|
static method main() → dynamic {}
|