Index: tests/compiler/dart2js_extra/deferred_split_test.dart |
diff --git a/tests/compiler/dart2js_extra/deferred_split_test.dart b/tests/compiler/dart2js_extra/deferred_split_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..de8b3e806f91650315ed5464960a62f63a43e1ef |
--- /dev/null |
+++ b/tests/compiler/dart2js_extra/deferred_split_test.dart |
@@ -0,0 +1,22 @@ |
+// Copyright (c) 2015, 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. |
+ |
+/// Regression for issue 23853: we used to incorreclty split and put a type in a |
+/// deferred hunk if the type was used explicitly in the deferred library and |
+/// was used only in a generic type in the main library. |
+library compiler.test.dart2js_extra.deferred_split_test; |
+ |
+import 'deferred_split_lib1.dart'; |
+import 'deferred_split_lib2.dart' deferred as b; |
+ |
+class TypeLiteral<T> { |
+ Type get type => T; |
+} |
+ |
+main() { |
+ // This line failed with a runtime error prior to the fix: |
+ new TypeLiteral<A<Object>>().type; |
+ |
+ b.loadLibrary().then((_) => b.createA()); |
+} |