blob: 064fdf67fda29c8d36d5d304c4ebfb53ed08ad18 [file] [log] [blame]
// Copyright (c) 2023, 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.
// Derived from co19/LanguageFeatures/Patterns/map_A04_t01
class C {
const C();
}
const c1 = C();
const c2 = C();
String test1(Map map) {
return switch (map) {
{const C(): 1, const C(): 2} => "",
{1: 1, 1: 2} => "",
{c1: var a1, c2: final b1} => "",
{3.14: var a2, 3.14: final b2} => "",
{"x": var a3, "x": final b3} => "",
_ => "default"
};
}
void test2(Map map) {
switch (map) {
case {const C(): 1, const C(): 2}:
break;
case {1: 1, 1: 2}:
break;
case {c1: var a1, c2: final b1}:
case {3.14: var a2, 3.14: final b2}:
break;
case {"x": var a3, "x": final b3}:
break;
}
}
void test3(Map map) {
if (map case {const C(): 1, const C(): 2}) {
}
if (map case {1: 1, 1: 2}) {
}
if (map case {c1: var a1, c2: final b1}) {
}
if (map case {3.14: var a2, 3.14: final b2}) {
}
if (map case {"x": var a3, "x": final b3}) {
}
}
test() {
var {const C(): a, const C(): b} = {const C(): 1};
var {1: c, 1: d} = {1: 2};
final {c1: var a1, c2: final b1} = {c2: 2};
final {3.14: var a2, 3.14: final b2} = {3.14: 1};
final {"x": var a3, "x": final b3} = {"x": 1};
}