blob: c9ab3327dd412f9b4e67a4ab3cedaa3bba830287 [file] [log] [blame]
// Copyright (c) 2022, 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.
/// @assertion
/// recordPattern ::= '(' patternFields? ')'
/// patternFields ::= patternField ( ',' patternField )* ','?
/// patternField ::= ( identifier? ':' )? pattern
/// ...
/// It is a compile-time error if a name cannot be inferred for a named field
/// pattern with the field name omitted
///
/// @description Checks that it is a compile-time error if a name cannot be
/// inferred for a named field pattern with the field name omitted. Test non
/// variable, null check/assert, cast or parenthesis patterns
/// @author sgrekhov22@gmail.com
import "patterns_lib.dart";
test(dynamic r) {
var (:n1 || n1) = r;
// ^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
final (:n2 || n2) = r;
// ^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var (: > 0) = r;
// ^^^
// [analyzer] unspecified
// [cfe] unspecified
final (: == 0) = r;
// ^^^^
// [analyzer] unspecified
// [cfe] unspecified
var (:42) = r;
// ^^
// [analyzer] unspecified
// [cfe] unspecified
final (:42) = r;
// ^^
// [analyzer] unspecified
// [cfe] unspecified
var (:[l1]) = r;
// ^^^^
// [analyzer] unspecified
// [cfe] unspecified
final (:[l2]) = r;
// ^^^^
// [analyzer] unspecified
// [cfe] unspecified
var (:{1: m1}) = r;
// ^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
final (:{2: m2}) = r;
// ^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var (:(n:r1, r2)) = r;
// ^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
final (:(n:r3, r4)) = r;
// ^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var (:Square(size: o1)) = r;
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
final (:Square(size: o2)) = r;
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
}
main() {
test((name: "pi", 3.14));
}