// Copyright (c) 2023, 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. class Class { dynamic field1; dynamic field2; } method(x, y, z) { final initializedFinal = 5; late final initializedLateFinal = 5; final definitelyUnassignedFinal; late final int definitelyUnassignedLateFinal; final definitelyAssignedFinal; late final definitelyAssignedLateFinal; final int notDefinitelyAssignedFinal; late final int notDefinitelyAssignedLateFinal; if (x == 5) { notDefinitelyAssignedFinal = 5; notDefinitelyAssignedLateFinal = 15; } definitelyAssignedFinal = 10; definitelyAssignedLateFinal = 20; (initializedFinal, // Error initializedLateFinal, // Error definitelyUnassignedFinal) = x; // Ok [definitelyUnassignedLateFinal, // Ok definitelyAssignedFinal] = y; // Error Class(field1: definitelyAssignedLateFinal, // Error field2: [[notDefinitelyAssignedFinal, _], // Error [_, notDefinitelyAssignedLateFinal]]) = z; // Ok }