Skip to content

Commit e601223

Browse files
committed
Support typechecking for erlang files from src/ directory
1 parent b4c2682 commit e601223

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lib/gradient.ex

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ defmodule Gradient do
2323
def type_check_file(file, opts \\ []) do
2424
opts = Keyword.put(opts, :return_errors, true)
2525

26-
with {:ok, forms} <- ElixirFileUtils.get_forms(file) do
26+
with {:ok, forms} <- ElixirFileUtils.get_forms(file),
27+
{:elixir, _} <- wrap_language_name(forms) do
2728
forms = maybe_specify_forms(forms, opts)
2829

2930
case maybe_gradient_check(forms, opts) ++ maybe_gradualizer_check(forms, opts) do
@@ -36,6 +37,12 @@ defmodule Gradient do
3637
:error
3738
end
3839
else
40+
{:erlang, forms} ->
41+
opts = Keyword.put(opts, :return_errors, false)
42+
case maybe_gradualizer_check(forms, opts) do
43+
:nok -> :error
44+
_ -> :ok
45+
end
3946
error ->
4047
Logger.error("Can't load file - #{inspect(error)}")
4148
:error
@@ -74,6 +81,14 @@ defmodule Gradient do
7481
end
7582
end
7683

84+
defp wrap_language_name([{:attribute, _, :file, {file_name, _}} | _] = forms) do
85+
if :string.str(file_name, '.erl') > 0 do
86+
{:erlang, forms}
87+
else
88+
{:elixir, forms}
89+
end
90+
end
91+
7792
defp put_code_path(forms, opts) do
7893
case opts[:code_path] do
7994
nil ->

0 commit comments

Comments
 (0)