/*
 * Copyright (c) 2020, 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.
 */
/**
 * @assertion The default bound of generic type parameters is treated as
 * [Object?].
 * @description Check that default generic class type parameter is treated as
 * [Object?] statically.
 *
 * @Issue 40367, 40368
 * @author iarkh@unipro.ru
 */
// Requirements=nnbd-weak

import "../../../Utils/expect.dart";

class A<T> {}
class B<T1, T2, T3> {}

F<A<Object?>?>? testA(A? source) {
  var fsource = toF(source);
  return fsource;
}

F<B<Object?, Object?, Object?>?>? testB(B? source) {
  var fsource = toF(source);
  return fsource;
}

main() {
  print(testA);
  print(testB);
}
