Files
sdk/tests/language/final/initializer_instance_reference_test.dart
Konstantin Shcheglov d53c3e01ed DeCo. Evaluate field initializers as evaluate const constructor.
As a preparation for evaluating instance field initializers in classes
with primary constructors, where you can reference formal parameters of
these primary constructors.

Change-Id: I8c1276ec9ae7b2f5950a1abefb7cb8492a736dfd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/483843
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2026-02-27 10:54:33 -08:00

24 lines
729 B
Dart

// Copyright (c) 2016, 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.
// Dart2js regression test. Error in initializer might be report with the wrong
// current element.
class C {
const C();
// [error column 3, length 5]
// [analyzer] COMPILE_TIME_ERROR.CONST_CONSTRUCTOR_WITH_FIELD_INITIALIZED_BY_NON_CONST
final x = 1;
final y = x;
// ^
// [analyzer] COMPILE_TIME_ERROR.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER
// [analyzer] COMPILE_TIME_ERROR.INVALID_CONSTANT
// [cfe] Can't access 'this' in a field initializer to read 'x'.
}
main() {
const C().y;
}