Files
sdk/pkg/front_end/testcases/nnbd/late.dart
T
Johnni Winther 1bc9fba660 [cfe] Allow this access in late field initializers
Change-Id: Ia2139e3e87a4b141b5e0df41541bab5f74acd5dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122760
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2019-10-24 18:11:17 +00:00

69 lines
1.7 KiB
Dart

// Copyright (c) 2019, 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.
late int lateTopLevelField;
late final int lateFinalTopLevelField;
late final int lateFinalTopLevelFieldWithInit = 0;
class Class {
late int lateInstanceField;
late final int lateFinalInstanceField1;
late final int lateFinalInstanceField2;
late final int lateFinalInstanceFieldWithInit = 0;
late Class lateInstanceFieldThis = this;
late final Class lateFinalInstanceFieldThis = this;
static late int lateStaticField;
static late final int lateFinalStaticField1;
static late final int lateFinalStaticField2;
static late final int lateFinalStaticFieldWithInit = 0;
method() {
late int lateVariable;
late final int lateFinalVariable;
late final int lateFinalVariableWithInit = 0;
lateVariable = 0;
lateFinalVariable = 0;
lateInstanceField = 0;
lateFinalInstanceField1 = 0;
lateStaticField = 0;
lateFinalStaticField1 = 0;
}
methodWithErrors() {
late final int lateFinalVariableWithInit = 0;
lateFinalVariableWithInit = 0;
lateFinalInstanceFieldWithInit = 0;
lateFinalStaticFieldWithInit = 0;
}
}
main() {}
noErrors() {
lateTopLevelField = 0;
lateFinalTopLevelField = 0;
var c1 = new Class();
c1.method();
var c2 = new Class();
c2.lateInstanceField = 0;
c2.lateFinalInstanceField2 = 0;
Class.lateStaticField = 0;
Class.lateFinalStaticField2 = 0;
}
errors() {
lateFinalTopLevelFieldWithInit = 0;
var c = new Class();
c.lateFinalInstanceFieldWithInit = 0;
c.methodWithErrors();
Class.lateFinalStaticFieldWithInit = 0;
}