// Copyright (c) 2021, 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.

// SharedOptions=--enable-experiment=generic-metadata

import "package:expect/expect.dart";

Type? capturedTypeArgument;
Type typeOf<X>() => X;

X captureTypeArgument<X>() {
  capturedTypeArgument = X;
  throw "";
}

typedef check = void Function<T>();

void main() {
  void f(check Function<T>() g) => g();
  try {
    f(<T>() => captureTypeArgument());
  } catch (e) {}
  Expect.equals(typeOf<void Function<T>()>(), capturedTypeArgument);
}
