boolean (@Nullable PyCallableParameter container, @NotNull List<? extends PyExpression> arguments, @NotNull GenericSubstitutions substitutions, @NotNull TypeEvalContext context) { if (container == null) { return true; } final List<PyType> actualArgumentTypes = ContainerUtil.map(arguments, context::getType); final PyType expectedArgumentType = container.getArgumentType(context); if (container.isPositionalContainer() && expectedArgumentType instanceof PyVariadicType variadicType) { return match(variadicType, PyUnpackedTupleTypeImpl.create(actualArgumentTypes), new MatchContext(context, substitutions, false)); } return match(expectedArgumentType, PyUnionType.union(actualArgumentTypes), context, substitutions); }