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

import 'package:expect/expect.dart';

void expectType(Type type, Pattern text) {
  var typeString = "$type";
  if (typeString.contains("minified:")) {
    return; // No checks for minimized types.
  }
  var match = text.matchAsPrefix(typeString);
  if (match != null && match.end == typeString.length) return;
  Expect.fail(
      "$typeString was not matched by $text${match == null ? "" : ", match: ${match[0]}"}");
}

class A<X, Y> {
  R f<R>(R Function<S, T>(A<S, T>) t) => t<X, Y>(this);
}

main() {
  A<num, num> a = A<int, int>();
  expectType(a.f.runtimeType,
      RegExp(r"<(\w+)>\(<(\w+), (\w+)>\(A<\2, \3>\) => \1\) => \1$"));
}
