// TODO(multitest): This was automatically migrated from a multitest and may
// contain strange or dead code.

// @dart = 2.9

// Copyright (c) 2012, 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.
// Test compile-time constants with string-interpolation.

import "package:expect/expect.dart";

const str = "foo";
const m1 = const {"foo": 499};
const m2 = const {"$str": 499};
const m3 = const {
  // Causes in a duplicate key error.

  "foo": 499
};
const m4 = const {
  // Causes in a duplicate key error.

  "$str": 499
};
const m5 = const {"f" "o" "o": 499};

const mm1 = const {"afoo#foo": 499};
const mm2 = const {"a$str#$str": 499};
const mm3 = const {"a" "$str" "#" "foo": 499};
const mm4 = const {"a$str" "#$str": 499};

main() {
  Expect.equals(1, m1.length);
  Expect.equals(499, m1["foo"]);
  Expect.identical(m1, m2);
  Expect.identical(m1, m3);
  Expect.identical(m1, m4);
  Expect.identical(m1, m5);

  Expect.equals(1, mm1.length);
  Expect.equals(499, mm1["afoo#foo"]);
  Expect.identical(mm1, mm2);
  Expect.identical(mm1, mm3);
  Expect.identical(mm1, mm4);
}
