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

import 'dart:typed_data';
import 'package:vm/testing/il_matchers.dart';

@pragma('vm:never-inline')
void callWith<T>(void Function(T arg) fun, T arg) {
  fun(arg);
}

@pragma('vm:testing:match-inner-flow-graph', 'foo')
void main() {
  @pragma('vm:testing:print-flow-graph')
  foo(Uint8List list) {
    if (list[0] != 0) throw 'a';
  }

  callWith<Uint8List>(foo, Uint8List(10));
}

void matchIL$main(FlowGraph graph) {}

void matchIL$main_foo(FlowGraph graph) {
  graph.match([
    match.block('Graph'),
    match.block('Function', [
      match.LoadField(),
      match.GenericCheckBound(),
      match.LoadUntagged(),
      match.LoadIndexed(),
    ]),
  ]);
}
