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

// @dart = 2.9

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