Files
sdk/tests/language_2/map/literal8_test.dart
T
Robert Nystrom fc1b1ecc71 Move files under language_2 into subdirectories.
Change-Id: Idbcc965a27e9ffeedf5e0a1068b019de4193070f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127745
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2019-12-11 19:18:00 +00:00

44 lines
991 B
Dart

// Copyright (c) 2013, 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 the use of type arguments on const map literals using general expression
// as keys.
library map_literal8_test;
import "package:expect/expect.dart";
class A {
const A();
}
class B extends A {
final a;
const B(this.a);
}
void main() {
var m1 = const {
const A(): 0,
const B(0): 1,
const B(1): 2,
const B(const A()): 3,
};
Expect.isTrue(m1 is Map);
Expect.isTrue(m1 is Map<A, int>);
Expect.isFalse(m1 is Map<int, dynamic>);
Expect.isFalse(m1 is Map<dynamic, A>);
var m2 = const <A, int>{
const A(): 0,
const B(0): 1,
const B(1): 2,
const B(const A()): 3,
};
Expect.isTrue(m2 is Map);
Expect.isTrue(m2 is Map<A, int>);
Expect.isFalse(m2 is Map<int, dynamic>);
Expect.isFalse(m2 is Map<dynamic, A>);
}