Add regression test for #33040

The issue was fixed in 54d842a89c722b7c27762b96ba21fab55a2ad55a.

Change-Id: Ie2a0cbef1684ad072855185bff512ba836f330ea
Reviewed-on: https://dart-review.googlesource.com/53742
Reviewed-by: RĂ©gis Crelier <regis@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
diff --git a/tests/language_2/vm/regress_33040_test.dart b/tests/language_2/vm/regress_33040_test.dart
new file mode 100644
index 0000000..8b595bf
--- /dev/null
+++ b/tests/language_2/vm/regress_33040_test.dart
@@ -0,0 +1,39 @@
+// 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.
+
+// Verify that prefix sharing optimization is taken into account when
+// concatenating type arguments vectors.
+
+import "package:expect/expect.dart";
+
+class C0 {}
+
+class C1 {}
+
+class C2 {}
+
+class C3 {}
+
+class Wrong {}
+
+void bar<T0, T1>() {
+  void baz<T2, T3>() {
+    Expect.equals(C0, T0);
+    Expect.equals(C1, T1);
+    Expect.equals(C2, T2);
+    Expect.equals(C3, T3);
+  }
+
+  baz<C2, C3>();
+}
+
+class A<X, Y, Z> {
+  void foo() {
+    bar<X, Y>();
+  }
+}
+
+void main() {
+  new A<C0, C1, Wrong>().foo();
+}