Skip to content

Invalid function spec for Soap.call #105

@deepankar-j

Description

@deepankar-j

The function spec for Soap.call/4 specifies that the params argument has the type map. In reality, Request.call/4 has the params type as any(). This results in the following linting error, when we supply {%{}, params} as the params value, which is valid.

The function call will not succeed.
Soap.call(
  any(),
  <<84, 114, 97, 99, [107], 66, 121, 65, 105, 114, 98, 105, 108>>,
  {%{}, %{<<_::80, _::size(24)>> => _}},
  [],
  [{:ssl, [{atom(), _}, ...]}, ...]
)
breaks the contract
(wsdl :: map(), operation :: String.t(), params :: map(), headers :: any(), opts :: any()) ::
  any()

I believe here's the change that introduced this issue.

c222fd1#diff-bb4eb1a45d57965da347a74dbbf2d7018a13203a09b8a53e0f5bc46b80895763R36

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions