dart-sdk/tests/language/record_literal_test.dart
Jens Johansen a4352d09e1 [parser] Record literals can be const and one-element only
This should bring parsing of record literals up-to-date with v1.6 of
https://github.com/dart-lang/language/blob/master/working/0546-patterns/records-feature-specification.md

Change-Id: If39bb1834137da55ef8bd1923106bbc614ea319b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256461
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2022-08-30 10:54:08 +00:00

35 lines
833 B
Dart

// 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.
// SharedOptions=--enable-experiment=records
main() {
var record1 = (1, 2, a: 3, b: 4);
print(record1);
// With ending comma.
var record2 = (42, 42, 42, );
print(record2);
var record3 = (foo: 42, bar: 42, 42, baz: 42, );
print(record3);
// Nested.
var record4 = ((42, 42), 42);
print(record4);
// With function inside.
var record5 = ((foo, bar) => 42, 42);
print(record5);
// 1 record entry with trailing comma.
var record6 = (42, );
print(record6);
// Const records.
var record7 = const (42, );
print(record7);
var record8 = const (42, foo: "bar");
print(record8);
}