@@ -219,21 +219,21 @@ unwrap_definitions(File, Module) ->
219219 split_definition (All , Unreachable , [], [], [], [], [], {[], []}).
220220
221221unwrap_definition ([Fun |T ], File , Module , CTable , All , Private ) ->
222- {Tuple , Kind , Line , _ , Check , Location , {Defaults , _ , _ }} = Fun ,
222+ {Tuple , Kind , Ann , _ , Check , Location , {Defaults , _ , _ }} = Fun ,
223223 Export = export (Kind , Tuple ),
224224
225225 case [Clause || {_ , Clause } <- ets :lookup (CTable , Tuple )] of
226226 [] ->
227- warn_bodyless_function (Line , File , Module , Kind , Tuple ),
227+ warn_bodyless_function (Ann , File , Module , Kind , Tuple ),
228228 unwrap_definition (T , File , Module , CTable , All , Private );
229229 Clauses ->
230- Unwrapped = {Tuple , Kind , Line , Location ,
231- function_for_stored_definition (Line , Export , Clauses )},
230+ Unwrapped = {Tuple , Kind , Ann , Location ,
231+ function_for_stored_definition (Ann , Export , Clauses )},
232232
233233 NewPrivate =
234234 if
235235 Kind == defp ; Kind == defmacrop ->
236- [{Tuple , Kind , Line , Check , Defaults }|Private ];
236+ [{Tuple , Kind , Ann , Check , Defaults }|Private ];
237237 true ->
238238 Private
239239 end ,
@@ -244,30 +244,30 @@ unwrap_definition([Fun|T], File, Module, CTable, All, Private) ->
244244unwrap_definition ([], _File , _Module , _CTable , All , Private ) ->
245245 {All , Private }.
246246
247- split_definition ([{Tuple , def , Line , Location , Body }|T ], Unreachable ,
247+ split_definition ([{Tuple , def , Ann , Location , Body }|T ], Unreachable ,
248248 Def , Defp , Defmacro , Defmacrop , Exports , Functions ) ->
249249 split_definition (T , Unreachable , [Tuple |Def ], Defp , Defmacro , Defmacrop ,
250250 [export (def , Tuple )|Exports ],
251- add_definition (Line , Location , Body , Functions ));
251+ add_definition (Ann , Location , Body , Functions ));
252252
253- split_definition ([{Tuple , defp , Line , Location , Body }|T ], Unreachable ,
253+ split_definition ([{Tuple , defp , Ann , Location , Body }|T ], Unreachable ,
254254 Def , Defp , Defmacro , Defmacrop , Exports , Functions ) ->
255255 case lists :member (Tuple , Unreachable ) of
256256 false ->
257257 split_definition (T , Unreachable , Def , [Tuple |Defp ], Defmacro , Defmacrop ,
258- Exports , add_definition (Line , Location , Body , Functions ));
258+ Exports , add_definition (Ann , Location , Body , Functions ));
259259 true ->
260260 split_definition (T , Unreachable , Def , [Tuple |Defp ], Defmacro , Defmacrop ,
261261 Exports , Functions )
262262 end ;
263263
264- split_definition ([{Tuple , defmacro , Line , Location , Body }|T ], Unreachable ,
264+ split_definition ([{Tuple , defmacro , Ann , Location , Body }|T ], Unreachable ,
265265 Def , Defp , Defmacro , Defmacrop , Exports , Functions ) ->
266266 split_definition (T , Unreachable , Def , Defp , [Tuple |Defmacro ], Defmacrop ,
267267 [export (defmacro , Tuple )|Exports ],
268- add_definition (Line , Location , Body , Functions ));
268+ add_definition (Ann , Location , Body , Functions ));
269269
270- split_definition ([{Tuple , defmacrop , _Line , _Location , _Body }|T ], Unreachable ,
270+ split_definition ([{Tuple , defmacrop , _Ann , _Location , _Body }|T ], Unreachable ,
271271 Def , Defp , Defmacro , Defmacrop , Exports , Functions ) ->
272272 split_definition (T , Unreachable , Def , Defp , Defmacro , [Tuple |Defmacrop ],
273273 Exports , Functions );
@@ -282,33 +282,33 @@ export(Kind, {Name, Arity}) when Kind == defmacro; Kind == defmacrop ->
282282export (Kind , {Name , Arity }) when Kind == def ; Kind == defp ->
283283 {Name , Arity }.
284284
285- function_for_stored_definition (Line , {Name , Arity }, Clauses ) ->
286- {function , Line , Name , Arity , Clauses }.
285+ function_for_stored_definition (Ann , {Name , Arity }, Clauses ) ->
286+ {function , Ann , Name , Arity , Clauses }.
287287
288- add_definition (_Line , nil , Body , {Head , Tail }) ->
288+ add_definition (_Ann , nil , Body , {Head , Tail }) ->
289289 {[Body |Head ], Tail };
290- add_definition (Line , Location , Body , {Head , Tail }) ->
290+ add_definition (Ann , Location , Body , {Head , Tail }) ->
291291 {Head ,
292- [{attribute , Line , file , Location }, Body |Tail ]}.
292+ [{attribute , Ann , file , Location }, Body |Tail ]}.
293293
294- default_function_for (Kind , Name , {clause , Line , Args , _Guards , _Exprs } = Clause )
294+ default_function_for (Kind , Name , {clause , Ann , Args , _Guards , _Exprs } = Clause )
295295 when Kind == defmacro ; Kind == defmacrop ->
296- {function , Line , Name , length (Args ) - 1 , [Clause ]};
297- default_function_for (_ , Name , {clause , Line , Args , _Guards , _Exprs } = Clause ) ->
298- {function , Line , Name , length (Args ), [Clause ]}.
296+ {function , Ann , Name , length (Args ) - 1 , [Clause ]};
297+ default_function_for (_ , Name , {clause , Ann , Args , _Guards , _Exprs } = Clause ) ->
298+ {function , Ann , Name , length (Args ), [Clause ]}.
299299
300- warn_bodyless_function (_Line , _File , Special , _Kind , _Tuple )
300+ warn_bodyless_function (_Ann , _File , Special , _Kind , _Tuple )
301301 when Special == 'Elixir.Kernel.SpecialForms' ; Special == 'Elixir.Module' ->
302302 ok ;
303- warn_bodyless_function (Line , File , _Module , Kind , Tuple ) ->
304- elixir_errors :form_warn ([{line , Line }], File , ? MODULE , {bodyless_fun , Kind , Tuple }),
303+ warn_bodyless_function (Ann , File , _Module , Kind , Tuple ) ->
304+ elixir_errors :form_warn ([{line , erl_anno : line ( Ann ) }], File , ? MODULE , {bodyless_fun , Kind , Tuple }),
305305 ok .
306306
307307% % Store each definition in the table.
308308% % This function also checks and emit warnings in case
309309% % the kind, of the visibility of the function changes.
310310
311- store_each (Check , Kind , File , Location , Module , Defaults , {function , Line , Name , Arity , Clauses }) ->
311+ store_each (Check , Kind , File , Location , Module , Defaults , {function , Ann , Name , Arity , Clauses }) ->
312312 Data = elixir_module :data_table (Module ),
313313 Defs = elixir_module :defs_table (Module ),
314314 Clas = elixir_module :clas_table (Module ),
@@ -317,60 +317,60 @@ store_each(Check, Kind, File, Location, Module, Defaults, {function, Line, Name,
317317 HasBody = Clauses =/= [],
318318
319319 case ets :lookup (Defs , Tuple ) of
320- [{Tuple , StoredKind , StoredLine , StoredFile , StoredCheck ,
320+ [{Tuple , StoredKind , StoredAnn , StoredFile , StoredCheck ,
321321 StoredLocation , {StoredDefaults , LastHasBody , LastDefaults }}] ->
322- FinalLine = StoredLine ,
322+ FinalAnn = StoredAnn ,
323323 FinalLocation = StoredLocation ,
324324 FinalDefaults = {max (Defaults , StoredDefaults ), HasBody , Defaults },
325- check_valid_kind (Line , File , Name , Arity , Kind , StoredKind ),
325+ check_valid_kind (Ann , File , Name , Arity , Kind , StoredKind ),
326326 (Check and StoredCheck ) andalso
327- check_valid_clause (Line , File , Name , Arity , Kind , Data , StoredLine , StoredFile ),
328- check_valid_defaults (Line , File , Name , Arity , Kind , Defaults , StoredDefaults , LastDefaults , LastHasBody );
327+ check_valid_clause (Ann , File , Name , Arity , Kind , Data , StoredAnn , StoredFile ),
328+ check_valid_defaults (Ann , File , Name , Arity , Kind , Defaults , StoredDefaults , LastDefaults , LastHasBody );
329329 [] ->
330- FinalLine = Line ,
330+ FinalAnn = Ann ,
331331 FinalLocation = Location ,
332332 FinalDefaults = {Defaults , HasBody , Defaults }
333333 end ,
334334
335335 Check andalso ets :insert (Data , {? last_def , {Name , Arity }}),
336336 ets :insert (Clas , [{Tuple , Clause } || Clause <- Clauses ]),
337- ets :insert (Defs , {Tuple , Kind , FinalLine , File , Check , FinalLocation , FinalDefaults }).
337+ ets :insert (Defs , {Tuple , Kind , FinalAnn , File , Check , FinalLocation , FinalDefaults }).
338338
339339% % Validations
340340
341- check_valid_kind (_Line , _File , _Name , _Arity , Kind , Kind ) -> [];
342- check_valid_kind (Line , File , Name , Arity , Kind , StoredKind ) ->
343- elixir_errors :form_error ([{line , Line }], File , ? MODULE ,
341+ check_valid_kind (_Ann , _File , _Name , _Arity , Kind , Kind ) -> [];
342+ check_valid_kind (Ann , File , Name , Arity , Kind , StoredKind ) ->
343+ elixir_errors :form_error ([{line , erl_anno : line ( Ann ) }], File , ? MODULE ,
344344 {changed_kind , {Name , Arity , StoredKind , Kind }}).
345345
346- check_valid_clause (Line , File , Name , Arity , Kind , Data , StoredLine , StoredFile ) ->
346+ check_valid_clause (Ann , File , Name , Arity , Kind , Data , StoredAnn , StoredFile ) ->
347347 case ets :lookup_element (Data , ? last_def , 2 ) of
348348 {Name , Arity } -> [];
349349 [] -> [];
350350 _ ->
351351 Relative = elixir_utils :relative_to_cwd (elixir_utils :relative_to_cwd (StoredFile )),
352- elixir_errors :form_warn ([{line , Line }], File , ? MODULE ,
353- {ungrouped_clause , {Kind , Name , Arity , StoredLine , Relative }})
352+ elixir_errors :form_warn ([{line , erl_anno : line ( Ann ) }], File , ? MODULE ,
353+ {ungrouped_clause , {Kind , Name , Arity , erl_anno : line ( StoredAnn ) , Relative }})
354354 end .
355355
356356% Clause with defaults after clause with defaults
357- check_valid_defaults (Line , File , Name , Arity , Kind , Defaults , StoredDefaults , _ , _ ) when Defaults > 0 , StoredDefaults > 0 ->
358- elixir_errors :form_error ([{line , Line }], File , ? MODULE ,
357+ check_valid_defaults (Ann , File , Name , Arity , Kind , Defaults , StoredDefaults , _ , _ ) when Defaults > 0 , StoredDefaults > 0 ->
358+ elixir_errors :form_error ([{line , erl_anno : line ( Ann ) }], File , ? MODULE ,
359359 {clauses_with_defaults , {Kind , Name , Arity }});
360360% Clause with defaults after clause(s) without defaults
361- check_valid_defaults (Line , File , Name , Arity , Kind , Defaults , 0 , 0 , _ ) when Defaults > 0 ->
362- elixir_errors :form_warn ([{line , Line }], File , ? MODULE , {out_of_order_defaults , {Kind , Name , Arity }});
361+ check_valid_defaults (Ann , File , Name , Arity , Kind , Defaults , 0 , 0 , _ ) when Defaults > 0 ->
362+ elixir_errors :form_warn ([{line , erl_anno : line ( Ann ) }], File , ? MODULE , {out_of_order_defaults , {Kind , Name , Arity }});
363363% Clause without defaults directly after clause with defaults (body less does not count)
364- check_valid_defaults (Line , File , Name , Arity , Kind , 0 , _ , LastDefaults , true ) when LastDefaults > 0 ->
365- elixir_errors :form_warn ([{line , Line }], File , ? MODULE ,
364+ check_valid_defaults (Ann , File , Name , Arity , Kind , 0 , _ , LastDefaults , true ) when LastDefaults > 0 ->
365+ elixir_errors :form_warn ([{line , erl_anno : line ( Ann ) }], File , ? MODULE ,
366366 {out_of_order_defaults , {Kind , Name , Arity }});
367367% Clause without defaults
368- check_valid_defaults (_Line , _File , _Name , _Arity , _Kind , 0 , _ , _ , _ ) -> [].
368+ check_valid_defaults (_Ann , _File , _Name , _Arity , _Kind , 0 , _ , _ , _ ) -> [].
369369
370- check_previous_defaults (Line , Module , Name , Arity , Kind , Defaults , E ) ->
370+ check_previous_defaults (Ann , Module , Name , Arity , Kind , Defaults , E ) ->
371371 Matches = ets :match (elixir_module :defs_table (Module ), {{Name , '$2' }, '$1' , '_' , '_' , '_' , '_' , {'$3' , '_' , '_' }}),
372372 [ begin
373- elixir_errors :form_error ([{line , Line }], ? m (E , file ), ? MODULE ,
373+ elixir_errors :form_error ([{line , erl_anno : line ( Ann ) }], ? m (E , file ), ? MODULE ,
374374 {defs_with_defaults , Name , {Kind , Arity }, {K , A }})
375375 end || [K , A , D ] <- Matches , A /= Arity , D /= 0 , defaults_conflict (A , D , Arity , Defaults )].
376376
0 commit comments