f8a96b88e9
Bug: https://github.com/dart-lang/sdk/issues/33022 This commit adds an error when a final field is not initialized at all (and there is at least one generative constructor). A later commit will add an error for the case where a field is initialized by some, but not all, generative constructors. A number of classes in the Dart2js and DDC support libraries use uninitialized final fields to indicate getters in the corresponding native classes. This commit adds a temporary whitelist for the affected files, which can be removed when the fields have been replaced by external getters. This is tracked by https://github.com/dart-lang/sdk/issues/33762 Change-Id: I6b5cee230c7cd5554da2b61da7ebddb6b0b9396e Reviewed-on: https://dart-review.googlesource.com/63781 Reviewed-by: Daniel Hillerström <hillerstrom@google.com>
17 lines
458 B
Dart
17 lines
458 B
Dart
// Copyright (c) 2011, 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.
|
|
|
|
// Check that all final instance fields of a class are initialized by
|
|
// constructors.
|
|
|
|
class Klass {
|
|
Klass(var v) : field_ = v {}
|
|
final uninitializedFinalField_; // //# 01: compile-time error
|
|
var field_;
|
|
}
|
|
|
|
main() {
|
|
new Klass(5);
|
|
}
|