// 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);
}
