blob: 9c2a8e0c2b4df71c85e9aa282d486029a0815ec6 [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.
import 'initializer_rewrite_from_opt_out_lib.dart';
int nonNullableTopLevelFieldReads = 0;
late final int nonNullableTopLevelField = nonNullableTopLevelFieldReads++ == 0
? nonNullableTopLevelField
: computeInitialValue();
int nullableTopLevelFieldReads = 0;
late final int? nullableTopLevelField = nullableTopLevelFieldReads++ == 0
? nullableTopLevelField
: computeInitialValue();
class Class {
static int nonNullableStaticFieldReads = 0;
static late final int nonNullableStaticField =
nonNullableStaticFieldReads++ == 0
? nonNullableStaticField
: computeInitialValue();
static int nullableStaticFieldReads = 0;
static late final int? nullableStaticField = nullableStaticFieldReads++ == 0
? nullableStaticField
: computeInitialValue();
int nonNullableInstanceFieldReads = 0;
late final int nonNullableInstanceField = nonNullableInstanceFieldReads++ == 0
? nonNullableInstanceField
: computeInitialValue();
int nullableInstanceFieldReads = 0;
late final int? nullableInstanceField = nullableInstanceFieldReads++ == 0
? nullableInstanceField
: computeInitialValue();
}
void main() {
throws(() => nonNullableTopLevelField, "Read nonNullableTopLevelField");
throws(() => nullableTopLevelField, "Read nullableTopLevelField");
throws(() => Class.nonNullableStaticField, "Read nonNullableStaticField");
throws(() => Class.nullableStaticField, "Read nullableStaticField");
throws(() => new Class().nonNullableInstanceField,
"Read nonNullableInstanceField");
throws(() => new Class().nullableInstanceField, "Read nullableInstanceField");
}
throws(f(), String message) {
dynamic value;
try {
value = f();
} on Error catch (e) {
print(e);
return;
}
throw '$message: $value';
}