// 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. int nonNullableTopLevelFieldReads = 0; late final int nonNullableTopLevelField = nonNullableTopLevelFieldReads++ == 0 ? nonNullableTopLevelField + 1 : 0; int nullableTopLevelFieldReads = 0; late final int? nullableTopLevelField = nullableTopLevelFieldReads++ == 0 ? nullableTopLevelField.hashCode : 0; class Class { static int nonNullableStaticFieldReads = 0; static late final int nonNullableStaticField = nonNullableStaticFieldReads++ == 0 ? nonNullableStaticField + 1 : 0; static int nullableStaticFieldReads = 0; static late final int? nullableStaticField = nullableStaticFieldReads++ == 0 ? nullableStaticField.hashCode : 0; int nonNullableInstanceFieldReads = 0; late final int nonNullableInstanceField = nonNullableInstanceFieldReads++ == 0 ? nonNullableInstanceField + 1 : 0; int nullableInstanceFieldReads = 0; late final int? nullableInstanceField = nullableInstanceFieldReads++ == 0 ? nullableInstanceField.hashCode : 0; } 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'; }