a7fa63493f
The setters generated from external fields used not have a name. This broke the assumptions in the VM when making stack traces. Separated out from https://dart-review.googlesource.com/c/sdk/+/140290. Issue: https://github.com/dart-lang/sdk/issues/43533 Change-Id: I1816557eff891eaa7c531db1f4239159c66c325c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164093 Commit-Queue: Daco Harkes <dacoharkes@google.com> Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
87 lines
4.1 KiB
Plaintext
87 lines
4.1 KiB
Plaintext
library /*isNonNullableByDefault*/;
|
|
//
|
|
// Problems in library:
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42967.dart:7:7: Error: Field 'fieldNonNullableOfA' should be initialized because its type 'num' doesn't allow null.
|
|
// num fieldNonNullableOfA; // Error.
|
|
// ^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42967.dart:10:17: Error: Final field 'fieldFinalDynamicOfA' is not initialized.
|
|
// Try to initialize the field in the declaration or in every constructor.
|
|
// final dynamic fieldFinalDynamicOfA; // Error.
|
|
// ^^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42967.dart:26:7: Error: Field 'fieldNonNullableOfB' should be initialized because its type 'num' doesn't allow null.
|
|
// num fieldNonNullableOfB; // Error.
|
|
// ^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42967.dart:29:17: Error: Final field 'fieldFinalDynamicOfB' is not initialized.
|
|
// Try to initialize the field in the declaration or in every constructor.
|
|
// final dynamic fieldFinalDynamicOfB; // Error.
|
|
// ^^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42967.dart:45:7: Error: Field 'fieldNonNullableOfM' should be initialized because its type 'num' doesn't allow null.
|
|
// num fieldNonNullableOfM; // Error.
|
|
// ^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42967.dart:50:17: Error: Final field 'fieldFinalDynamicOfM' is not initialized.
|
|
// Try to initialize the field in the declaration or in every constructor.
|
|
// final dynamic fieldFinalDynamicOfM; // Error.
|
|
// ^^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
class A extends core::Object {
|
|
field core::num fieldNonNullableOfA = null;
|
|
late field core::num fieldLateNonNullableOfA;
|
|
final field dynamic fieldFinalDynamicOfA = null;
|
|
late final [setter] field dynamic fieldLateFinalDynamicOfA;
|
|
synthetic constructor •() → self::A
|
|
: super core::Object::•()
|
|
;
|
|
}
|
|
abstract class AbstractA extends core::Object {
|
|
synthetic constructor •() → self::AbstractA
|
|
: super core::Object::•()
|
|
;
|
|
external get fieldExternalNonNullableOfAbstractA() → core::num;
|
|
external set fieldExternalNonNullableOfAbstractA(core::num #externalFieldValue) → void;
|
|
abstract get fieldAbstractNonNullableOfAbstractA() → core::num;
|
|
abstract set fieldAbstractNonNullableOfAbstractA(core::num #externalFieldValue) → void;
|
|
external get fieldExternalFinalDynamicOfAbstractA() → dynamic;
|
|
abstract get fieldAbstractFinalDynamicOfAbstractA() → dynamic;
|
|
}
|
|
class B extends core::Object {
|
|
field core::num fieldNonNullableOfB = null;
|
|
late field core::num fieldLateNonNullableOfB;
|
|
final field dynamic fieldFinalDynamicOfB = null;
|
|
late final [setter] field dynamic fieldLateFinalDynamicOfB;
|
|
static factory •() → self::B
|
|
return throw 42;
|
|
}
|
|
abstract class AbstractB extends core::Object {
|
|
synthetic constructor •() → self::AbstractB
|
|
: super core::Object::•()
|
|
;
|
|
external get fieldExternalNonNullableOfAbstractB() → core::num;
|
|
external set fieldExternalNonNullableOfAbstractB(core::num #externalFieldValue) → void;
|
|
abstract get fieldAbstractNonNullableOfAbstractB() → core::num;
|
|
abstract set fieldAbstractNonNullableOfAbstractB(core::num #externalFieldValue) → void;
|
|
external get fieldExternalFinalDynamicOfAbstractB() → dynamic;
|
|
abstract get fieldAbstractFinalDynamicOfAbstractB() → dynamic;
|
|
}
|
|
abstract class M extends core::Object /*isMixinDeclaration*/ {
|
|
field core::num fieldNonNullableOfM = null;
|
|
late field core::num fieldLateNonNullableOfM;
|
|
final field dynamic fieldFinalDynamicOfM = null;
|
|
late final [setter] field dynamic fieldLateFinalDynamicOfM;
|
|
external get fieldExternalNonNullableOfM() → core::num;
|
|
external set fieldExternalNonNullableOfM(core::num #externalFieldValue) → void;
|
|
abstract get fieldAbstractNonNullableOfM() → core::num;
|
|
abstract set fieldAbstractNonNullableOfM(core::num #externalFieldValue) → void;
|
|
external get fieldExternalFinalDynamicOfM() → dynamic;
|
|
abstract get fieldAbstractFinalDynamicOfM() → dynamic;
|
|
}
|
|
static method main() → dynamic {}
|