// 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.

// @dart = 2.7

/// Regression for issue 23853: we used to incorrectly 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());
}
