Skip to content

Commit 6c2bc37

Browse files
authored
Fix dialyzer invalid contract in token_pairs.ex (#646)
From dialyzer warning: ``` lib/language_server/providers/folding_range/token_pairs.ex:50:invalid_contract The @SPEC for the function does not match the success typing of the function. Function: ElixirLS.LanguageServer.Providers.FoldingRange.TokenPair.provide_ranges/1 Success typing: @SPEC provide_ranges(%{:tokens => [{atom(), {_, _, _}, _}], _ => _}) :: {:ok, [ %{ :endLine => non_neg_integer(), :startLine => non_neg_integer(), :endCharacter? => non_neg_integer(), :kind? => :comment | :imports | :region, :startCharacter? => non_neg_integer() } ]} ``` It's happens because the typespec function declare that it accepts the list of folding range, but in the real usage, it accepts just one folding range.
1 parent 6cd0415 commit 6c2bc37

File tree

1 file changed

+1
-1
lines changed
  • apps/language_server/lib/language_server/providers/folding_range

1 file changed

+1
-1
lines changed

apps/language_server/lib/language_server/providers/folding_range/token_pairs.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ defmodule ElixirLS.LanguageServer.Providers.FoldingRange.TokenPair do
4747
%{startLine: 1, endLine: 2, kind?: :region}
4848
]}
4949
"""
50-
@spec provide_ranges([FoldingRange.input()]) :: {:ok, [FoldingRange.t()]}
50+
@spec provide_ranges(FoldingRange.input()) :: {:ok, [FoldingRange.t()]}
5151
def provide_ranges(%{tokens: tokens}) do
5252
ranges =
5353
tokens

0 commit comments

Comments
 (0)