mirror of
https://github.com/dart-lang/sdk
synced 2024-09-19 23:31:42 +00:00
383517d292
A reused type argument vector that is longer than necessary needs to be shortened to the correct length upon type canonicalization. The runtime call comparing two instance runtime types also needs to consider reused vectors. Add regression test. Change-Id: Ib3b9620409b9cff313f270c4f3fb7051fecbb604 Reviewed-on: https://dart-review.googlesource.com/45340 Commit-Queue: Régis Crelier <regis@google.com> Reviewed-by: Siva Annamalai <asiva@google.com>
29 lines
617 B
Dart
29 lines
617 B
Dart
// Copyright (c) 2018, 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.
|
|
|
|
import 'package:expect/expect.dart';
|
|
|
|
class A<T> {}
|
|
|
|
final map = {};
|
|
|
|
class B<T> {
|
|
void foo() {
|
|
Expect.equals(map[new A<T>().runtimeType], 42);
|
|
}
|
|
}
|
|
|
|
class C<T, U> {
|
|
void build() {
|
|
new B<T>().foo();
|
|
new B<U>().foo();
|
|
Expect.equals(new B<T>().runtimeType, new B<U>().runtimeType);
|
|
}
|
|
}
|
|
|
|
void main() {
|
|
map[new A<String>().runtimeType] = 42;
|
|
new C<String, String>().build();
|
|
}
|