@@ -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