blob: 29a117ed2a36de5022c2f2f401e3c8749f1620ac [file] [log] [blame]
// 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 Foo {}
int topLevelField; // Error.
class A {
static int staticFieldOfA; // Error.
int fieldOfA; // Error.
A.foo();
A.bar(this.fieldOfA);
}
class B<X extends Object?, Y extends Object> {
X fieldOfB; // Error.
Y fieldOfB2; // Error.
B.foo();
B.bar(this.fieldOfB, this.fieldOfB2);
}
mixin M {
static int staticFieldOfM; // Error.
int fieldOfM; // Error.
}
mixin N<X extends Object?, Y extends Object> {
X fieldOfN; // Error.
Y fieldOfN2; // Error.
}
extension P on Foo {
static int staticFieldOfE; // Error.
}
int? nullableTopLevelField; // Not an error.
late int lateTopLevelField; // Not an error.
int topLevelFieldWithInitializer = 42; // Not an error.
class C<X extends Object?, Y extends Object> {
static int? staticFieldOfX; // Not an error.
static int staticFieldOfXInitialized = 42; // Not an error.
X? fieldOfX; // Not an error.
int? fieldOfX2; // Not an error.
dynamic fieldOfX3; // Not an error.
Null fieldOfX4; // Not an error.
int Function()? fieldOfX5; // Not an error.
Y? fieldOfX6; // Not an error.
static late int lateStaticFieldOfC; // Not an error.
late int fieldOfC7; // Not an error.
late X fieldOfC8; // Not an error.
late Y fieldOfC9; // Not an error.
int fieldOfC10; // Not an error.
C.foo(this.fieldOfC10);
C.bar(this.fieldOfC10);
}
mixin L<X extends Object?, Y extends Object> {
static int? staticFieldOfL; // Not an error.
static int staticFieldOfLInitialized = 42; // Not an error
X? fieldOfL; // Not an error.
int? fieldOfL2; // Not an error.
dynamic fieldOfL3; // Not an error.
Null fieldOfL4; // Not an error.
int Function()? fieldOfL5; // Not an error.
Y? fieldOfL6; // Not an error.
static late int lateStaticFieldOfM; // Not an error.
late int fieldOfM7; // Not an error.
late X fieldOfM8; // Not an error.
late Y fieldOfM9; // Not an error.
}
extension Q on Foo {
static int? staticFieldOfQ; // Not an error.
static late int lateStaticFieldOfQ; // Not an error.
static int staticFieldOfQInitialized = 42; // Not an error.
}
main() {}