@@ -85,6 +85,9 @@ defmodule Module.Types.Helpers do
8585
8686 @ doc """
8787 Collect traces from variables in expression.
88+
89+ This information is exposed to language servers and
90+ therefore must remain backwards compatible.
8891 """
8992 def collect_traces ( expr , % { vars: vars } ) do
9093 { _ , versions } =
@@ -135,16 +138,17 @@ defmodule Module.Types.Helpers do
135138 formatter -> formatter . ( expr )
136139 end
137140
141+ # This information is exposed to language servers and
142+ # therefore must remain backwards compatible.
138143 % {
139144 file: file ,
140- line: meta [ :line ] ,
141- column: meta [ :column ] ,
142- hints: formatter_hints ++ expr_hints ( expr ) ,
145+ meta: meta ,
143146 formatted_expr: formatted_expr ,
147+ formatted_hints: format_hints ( formatter_hints ++ expr_hints ( expr ) ) ,
144148 formatted_type: Module.Types.Descr . to_quoted_string ( type , collapse_structs: true )
145149 }
146150 end )
147- |> Enum . sort_by ( & { & 1 . line , & 1 . column } )
151+ |> Enum . sort_by ( & { & 1 . meta [ : line] , & 1 . meta [ : column] } )
148152 |> Enum . dedup ( )
149153 end
150154
@@ -161,7 +165,7 @@ defmodule Module.Types.Helpers do
161165 location =
162166 trace . file
163167 |> Path . relative_to_cwd ( )
164- |> Exception . format_file_line ( trace . line , trace . column )
168+ |> Exception . format_file_line ( trace . meta [ : line] , trace . meta [ : column] )
165169 |> String . replace_suffix ( ":" , "" )
166170
167171 [
@@ -173,7 +177,7 @@ defmodule Module.Types.Helpers do
173177 """ ,
174178 indent ( trace . formatted_expr , 4 ) ,
175179 ?\n ,
176- format_hints ( trace . hints )
180+ trace . formatted_hints
177181 ]
178182 end
179183
0 commit comments