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