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

// This test verifies that typedef types used in constants are correctly
// visited in the tree shaker.
// Regression test for https://github.com/dart-lang/sdk/issues/37149.

import 'dart:async' show FutureOr;

typedef ComputeCallback<Q, R> = FutureOr<R> Function(Q message);
typedef _ComputeImpl =
    Future<R?> Function<Q, R>(
      ComputeCallback<Q, R>? callback,
      Q? message, {
      String debugLabel,
    });

Future<R?> isolatesCompute<Q, R>(
  ComputeCallback<Q, R>? callback,
  Q? message, {
  String? debugLabel,
}) async {
  return null;
}

const _ComputeImpl compute = isolatesCompute;

main() {
  compute.call(null, null);
}
