Skip to content

Commit a5fd8ec

Browse files
authored
do not rely on compile OTP version dialyzer internal record (#703)
it may differ from running version
1 parent 3bd305b commit a5fd8ec

File tree

1 file changed

+53
-8
lines changed
  • apps/language_server/lib/language_server/dialyzer

1 file changed

+53
-8
lines changed

apps/language_server/lib/language_server/dialyzer/analyzer.ex

Lines changed: 53 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,21 +56,66 @@ defmodule ElixirLS.LanguageServer.Dialyzer.Analyzer do
5656
log_cache: []
5757
]
5858

59-
Record.defrecordp(:analysis, Record.extract(:analysis, from_lib: "dialyzer/src/dialyzer.hrl"))
59+
Record.defrecordp(
60+
:analysis_24,
61+
:analysis,
62+
analysis_pid: :undefined,
63+
type: :succ_typings,
64+
defines: [],
65+
doc_plt: :undefined,
66+
files: [],
67+
include_dirs: [],
68+
start_from: :byte_code,
69+
plt: :undefined,
70+
use_contracts: true,
71+
race_detection: false,
72+
behaviours_chk: false,
73+
timing: false,
74+
timing_server: :none,
75+
callgraph_file: [],
76+
solvers: :undefined
77+
)
78+
79+
Record.defrecordp(
80+
:analysis_25,
81+
:analysis,
82+
analysis_pid: :undefined,
83+
type: :succ_typings,
84+
defines: [],
85+
doc_plt: :undefined,
86+
files: [],
87+
include_dirs: [],
88+
start_from: :byte_code,
89+
plt: :undefined,
90+
use_contracts: true,
91+
behaviours_chk: false,
92+
timing: false,
93+
timing_server: :none,
94+
callgraph_file: [],
95+
solvers: :undefined
96+
)
6097

6198
def analyze(active_plt, []) do
6299
{active_plt, %{}, []}
63100
end
64101

65102
def analyze(active_plt, files) do
66103
analysis_config =
67-
analysis(
68-
plt: active_plt,
69-
files: files,
70-
type: :succ_typings,
71-
start_from: :byte_code,
72-
solvers: []
73-
)
104+
case System.otp_release() |> String.to_integer() do
105+
ver when ver < 25 ->
106+
analysis_24(
107+
plt: active_plt,
108+
files: files,
109+
solvers: []
110+
)
111+
112+
_ ->
113+
analysis_25(
114+
plt: active_plt,
115+
files: files,
116+
solvers: []
117+
)
118+
end
74119

75120
parent = self()
76121

0 commit comments

Comments
 (0)