public static boolean match(@Nullable PyType expected,
                              @Nullable PyType actual,
                              @NotNull TypeEvalContext context,
                              @NotNull Map<? extends PyTypeParameterType, PyType> typeVars) {
    var substitutions = new GenericSubstitutions(typeVars);
    return match(expected, actual, new MatchContext(context, substitutions, false)).orElse(true);
  }
public static boolean match(@Nullable PyType expected,
                              @Nullable PyType actual,
                              @NotNull TypeEvalContext context,
                              @NotNull Map<? extends PyTypeParameterType, PyType> typeVars)