Files
sdk/tests/language/this/conditional_operator_runtime_test.dart
T
Johnni Winther 16f7ce8e57 [cfe] Warn on null aware access on this and static members
Closes #43703
Closes #43461

Change-Id: I861462b5fcf31d5459c17cbe1604ce285c359dec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/167563
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-10-15 08:48:33 +00:00

46 lines
1.1 KiB
Dart

// TODO(multitest): This was automatically migrated from a multitest and may
// contain strange or dead code.
// Copyright (c) 2015, 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.
// Verify that the ?. operator cannot be used for forwarding "this"
// constructors.
class B {
B();
B.namedConstructor();
var field = 1;
method() => 1;
B.forward();
test() {
this?.field = 1;
// ^
// [cfe] The receiver 'this' cannot be null.
// ^^
// [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
this?.field += 1;
// ^
// [cfe] The receiver 'this' cannot be null.
// ^^
// [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
this?.field;
// ^
// [cfe] The receiver 'this' cannot be null.
// ^^
// [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
this?.method();
// ^
// [cfe] The receiver 'this' cannot be null.
// ^^
// [analyzer] STATIC_WARNING.INVALID_NULL_AWARE_OPERATOR
}
}
main() {
new B.forward().test();
}