| // 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)); |
| } |