gradient icon indicating copy to clipboard operation
gradient copied to clipboard

Gradient is a static typechecker for Elixir

Results 43 gradient issues
Sort by recently updated
recently updated
newest added

Running Gradient in this project. https://github.com/eksperimental/beam_meta/tree/1de809c6266d9ee877354f8c2b6dd32adc7d4bf9 ``` lib/beam_meta/compatibility/otp_elixir.ex: The pattern %{version: elixir_version, version_requirement: elixir_requirement, otp_versions: otp_versions} on line 138 doesn't have the type any() lib/beam_meta/compatibility/otp_elixir.ex: The type spec bounded_fun((deep_list ->...

triage

Original issue: https://github.com/josefs/Gradualizer/issues/421#issuecomment-1149618778 I am getting the following issues: ``` commands/accept_address_transfer.ex: The spec new/1 on line 5 follows a spec with different name/arity commands/accept_address_transfer.ex: The spec put_aggregate_id/2 on line 5...

bug

In Gradualizer it's possible to provide external specs for functions defined without them. In Gradient we could use the same Gradualizer option, but it doesn't seem to be exposed to...

enhancement

In some cases it's more convenient to use a standalone CLI tool than add a dependency to a project. To enable this, we can make Gradient a standalone escript. Thanks...

enhancement
good first issue

``` lib/a.ex:6: The variable is expected to have type nonempty_list(A) but it has type list(integer()) 4 cond do 5 [] == list -> 0 6 match?([_a], list) -> list |>...

enhancement
elixir-syntax

This will involve using an auxiliary helper together with changes to `Gradient.TypedServer.CompileHooks`. Specifically, `CompileHooks` will have to detect the standard `GenServer.handle_call` return values instead of just detecting the `TypedServer.reply` call,...

```elixir lib/ex_doc/language/elixir.ex: The function call on line 95 is expected to have type nonempty_list(A) but it has type string() 94 defp doc?({{_, name, _}, _, _, :none, _}, _type) do...

enhancement
good first issue

```elixir # FIXME: It seems the second attempt/1 clause cannot be reached. @spec attempt(%Waiter{}) :: {:ok, %Waiter{}} | {:error, %Waiter{}} defp attempt(%Waiter{attempt_num: num, num_attempts: num} = waiter) do ``` This...

bug
enhancement
gradualizer-issue

When having multiple function calls and arguments, it is hard to tell which one is bringing up the issue. As of now, i need to read the docs for both...

enhancement

Code: https://github.com/eksperimental/ex_doc/blob/a5f02c1bb03651f4fa40f9fc56301d71a515e742/lib/ex_doc/formatter/epub.ex#L150-L152 ``` lib/ex_doc/formatter/epub.ex: The function call on line 151 is expected to have type binary() | maybe_improper_list(byte() | binary() | iolist(), [] | binary()) but it has type chars()...