734da2ca2c
Closes #42967, #42844, #40951. Bug: https://github.com/dart-lang/sdk/issues/42967 Bug: https://github.com/dart-lang/sdk/issues/42844 Bug: https://github.com/dart-lang/sdk/issues/40951 Change-Id: Iffa76b8bb507927b8ced07712f710dfbca58659c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/163940 Commit-Queue: Dmitry Stefantsov <dmitryas@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
57 lines
1.8 KiB
Dart
57 lines
1.8 KiB
Dart
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
// Class A has no constructors.
|
|
class A {
|
|
num fieldNonNullableOfA; // Error.
|
|
late num fieldLateNonNullableOfA; // Ok.
|
|
|
|
final dynamic fieldFinalDynamicOfA; // Error.
|
|
late final dynamic fieldLateFinalDynamicOfA; // Ok.
|
|
}
|
|
|
|
// Class AbstractA has no constructors.
|
|
abstract class AbstractA {
|
|
external num fieldExternalNonNullableOfAbstractA; // Ok.
|
|
abstract num fieldAbstractNonNullableOfAbstractA; // Ok.
|
|
|
|
external final dynamic fieldExternalFinalDynamicOfAbstractA; // Ok.
|
|
abstract final dynamic fieldAbstractFinalDynamicOfAbstractA; // Ok.
|
|
}
|
|
|
|
|
|
// Class B has only factory constructors.
|
|
class B {
|
|
num fieldNonNullableOfB; // Error.
|
|
late num fieldLateNonNullableOfB; // Ok.
|
|
|
|
final dynamic fieldFinalDynamicOfB; // Error.
|
|
late final dynamic fieldLateFinalDynamicOfB; // Ok.
|
|
|
|
factory B() => throw 42;
|
|
}
|
|
|
|
// Class AbstractB has only factory constructors.
|
|
abstract class AbstractB {
|
|
external num fieldExternalNonNullableOfAbstractB; // Ok.
|
|
abstract num fieldAbstractNonNullableOfAbstractB; // Ok.
|
|
|
|
external final dynamic fieldExternalFinalDynamicOfAbstractB; // Ok.
|
|
abstract final dynamic fieldAbstractFinalDynamicOfAbstractB; // Ok.
|
|
}
|
|
|
|
mixin M {
|
|
num fieldNonNullableOfM; // Error.
|
|
late num fieldLateNonNullableOfM; // Ok.
|
|
external num fieldExternalNonNullableOfM; // Ok.
|
|
abstract num fieldAbstractNonNullableOfM; // Ok.
|
|
|
|
final dynamic fieldFinalDynamicOfM; // Error.
|
|
late final dynamic fieldLateFinalDynamicOfM; // Ok.
|
|
external final dynamic fieldExternalFinalDynamicOfM; // Ok.
|
|
abstract final dynamic fieldAbstractFinalDynamicOfM; // Ok.
|
|
}
|
|
|
|
main() {}
|