// Copyright (c) 2012, 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 A { const A(a); const A.named({a: 42}); const A.optional([a]); } main() { const A(1); const A(); // ^^ // [analyzer] COMPILE_TIME_ERROR.NOT_ENOUGH_POSITIONAL_ARGUMENTS // [cfe] Too few positional arguments: 1 required, 0 given. const A(1, 2); // ^ // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS // ^^^^^^ // [cfe] Too many positional arguments: 1 allowed, but 2 found. const A.named(); const A.named(b: 1); // ^ // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_NAMED_PARAMETER // [cfe] No named parameter with the name 'b'. const A.named(a: 1, a: 2); // ^ // [analyzer] COMPILE_TIME_ERROR.DUPLICATE_NAMED_ARGUMENT // [cfe] Duplicated named argument 'a'. const A.named(a: 1, b: 2); // ^ // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_NAMED_PARAMETER // [cfe] No named parameter with the name 'b'. const A.optional(); const A.optional(42); const A.optional(42, 54); // ^^ // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS // ^^^^^^^^ // [cfe] Too many positional arguments: 1 allowed, but 2 found. }