[tests] Enum shorthands - Collection literal tests for constructors and static methods.
Tests for using static method and constructor shorthands in collection literals.
Bug: https://github.com/dart-lang/sdk/issues/57038
Change-Id: I5151d53cc90966abb8d03dd453448987ccf8ce7a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/401981
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
diff --git a/tests/language/enum_shorthands/constructor/constructor_collection_literal_test.dart b/tests/language/enum_shorthands/constructor/constructor_collection_literal_test.dart
new file mode 100644
index 0000000..4e6a1d1
--- /dev/null
+++ b/tests/language/enum_shorthands/constructor/constructor_collection_literal_test.dart
@@ -0,0 +1,62 @@
+// Copyright (c) 2024, 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.
+
+// Context type is propagated down in collection literals.
+// Testing with constructor shorthands.
+
+// SharedOptions=--enable-experiment=enum-shorthands
+
+import '../enum_shorthand_helper.dart';
+
+void main() {
+ var ctorList = <ConstructorClass>[
+ .new(1),
+ .regular(1),
+ .named(x: 1),
+ .optional(1),
+ ];
+ var ctorSet = <ConstructorClass>{
+ .new(1),
+ .regular(1),
+ .named(x: 1),
+ .optional(1),
+ };
+ var ctorMap = <ConstructorClass, ConstructorClass>{
+ .new(1): .new(1),
+ .regular(1): .regular(1),
+ .named(x: 1): .named(x: 1),
+ .optional(1): .optional(1),
+ };
+ var ctorMap2 = <ConstructorClass, (ConstructorClass, ConstructorClass)>{
+ .new(1): (.new(1), .new(1)),
+ .regular(1): (.regular(1), .regular(1)),
+ .named(x: 1): (.named(x: 1), .named(x: 1)),
+ .optional(1): (.optional(1), .optional(1)),
+ };
+
+ var ctorExtList = <ConstructorExt>[
+ .new(1),
+ .regular(1),
+ .named(x: 1),
+ .optional(1),
+ ];
+ var ctorExtSet = <ConstructorExt>{
+ .new(1),
+ .regular(1),
+ .named(x: 1),
+ .optional(1),
+ };
+ var ctorExtMap = <ConstructorExt, ConstructorExt>{
+ .new(1): .new(1),
+ .regular(1): .regular(1),
+ .named(x: 1): .named(x: 1),
+ .optional(1): .optional(1),
+ };
+ var ctorExtMap2 = <ConstructorExt, (ConstructorExt, ConstructorExt)>{
+ .new(1): (.new(1), .new(1)),
+ .regular(1): (.regular(1), .regular(1)),
+ .named(x: 1): (.named(x: 1), .named(x: 1)),
+ .optional(1): (.optional(1), .optional(1)),
+ };
+}
diff --git a/tests/language/enum_shorthands/member/static_method_collection_literal_test.dart b/tests/language/enum_shorthands/member/static_method_collection_literal_test.dart
new file mode 100644
index 0000000..a7bf76e
--- /dev/null
+++ b/tests/language/enum_shorthands/member/static_method_collection_literal_test.dart
@@ -0,0 +1,38 @@
+// Copyright (c) 2024, 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.
+
+// Context type is propagated down in collection literals.
+// Testing with static method shorthands.
+
+// SharedOptions=--enable-experiment=enum-shorthands
+
+import '../enum_shorthand_helper.dart';
+
+void main() {
+ var memberList = <StaticMember>[.member(), .memberType<String, int>('s'), .member()];
+ var memberSet = <StaticMember>{.member(), .memberType<String, int>('s')};
+ var memberMap = <StaticMember, StaticMember>{
+ .member(): .memberType<String, int>('s'),
+ .memberType<String, int>('s'): .memberType<String, int>('s'),
+ };
+ var memberMap2 = <StaticMember, (StaticMember, StaticMember)>{
+ .member(): (.member(), .memberType<String, int>('s')),
+ .memberType<String, int>('s'): (.memberType<String, int>('s'), .memberType<String, int>('s')),
+ };
+
+ var memberExtList = <StaticMemberExt>[
+ .member(),
+ .memberType<String, int>('s'),
+ .member(),
+ ];
+ var memberExtSet = <StaticMemberExt>{.member(), .memberType<String, int>('s')};
+ var memberExtMap = <StaticMemberExt, StaticMemberExt>{
+ .member(): .memberType<String, int>('s'),
+ .memberType<String, int>('s'): .memberType<String, int>('s'),
+ };
+ var memberExtMap2 = <StaticMemberExt, (StaticMemberExt, StaticMemberExt)>{
+ .member(): (.member(), .memberType<String, int>('s')),
+ .memberType<String, int>('s'): (.memberType<String, int>('s'), .memberType<String, int>('s')),
+ };
+}