@@ -97,43 +97,27 @@ fetch_definitions(Module, E) ->
9797 error :badarg -> []
9898 end ,
9999
100- fetch_definition (Entries , E , Module , Set , Bag , [], [] ).
100+ fetch_definition (Entries , E , Module , Set , Bag , []).
101101
102- fetch_definition ([Tuple | T ], E , Module , Set , Bag , All , Private ) ->
103- [{_ , Kind , Meta , _ , Check , {MaxDefaults , _ , Defaults }}] = ets :lookup (Set , {def , Tuple }),
102+ fetch_definition ([Tuple | T ], E , Module , Set , Bag , All ) ->
103+ [{_ , Kind , Meta , _ , _ , {MaxDefaults , _ , _ }}] = ets :lookup (Set , {def , Tuple }),
104104
105105 try ets :lookup_element (Bag , {clauses , Tuple }, 2 ) of
106106 Clauses ->
107- NewAll =
108- [{Tuple , Kind , add_defaults_to_meta (MaxDefaults , Meta ), Clauses } | All ],
109- NewPrivate =
110- case (Kind == defp ) orelse (Kind == defmacrop ) of
111- true ->
112- Metas = head_and_definition_meta (Check , Meta , MaxDefaults - Defaults , All ),
113- [{Tuple , Kind , Metas , MaxDefaults } | Private ];
114- false ->
115- Private
116- end ,
117- fetch_definition (T , E , Module , Set , Bag , NewAll , NewPrivate )
107+ NewAll = [{Tuple , Kind , add_defaults_to_meta (MaxDefaults , Meta ), Clauses } | All ],
108+ fetch_definition (T , E , Module , Set , Bag , NewAll )
118109 catch
119110 error :badarg ->
120111 elixir_errors :module_error (Meta , E , ? MODULE , {function_head , Kind , Tuple }),
121- fetch_definition (T , E , Module , Set , Bag , All , Private )
112+ fetch_definition (T , E , Module , Set , Bag , All )
122113 end ;
123114
124- fetch_definition ([], _E , _Module , _Set , _Bag , All , Private ) ->
125- { All , Private } .
115+ fetch_definition ([], _E , _Module , _Set , _Bag , All ) ->
116+ All .
126117
127118add_defaults_to_meta (0 , Meta ) -> Meta ;
128119add_defaults_to_meta (Defaults , Meta ) -> [{defaults , Defaults } | Meta ].
129120
130- head_and_definition_meta (none , _Meta , _HeadDefaults , _All ) ->
131- false ;
132- head_and_definition_meta (_ , Meta , 0 , _All ) ->
133- Meta ;
134- head_and_definition_meta (_ , _Meta , _HeadDefaults , [{_ , _ , HeadMeta , _ } | _ ]) ->
135- HeadMeta .
136-
137121% % Section for storing definitions
138122
139123store_definition (Kind , {Call , Body }, Pos ) ->
@@ -168,11 +152,7 @@ store_definition(Kind, HasNoUnquote, Call, Body, #{line := Line} = E) ->
168152 _ -> Column
169153 end ,
170154
171- CheckClauses = if
172- Context /= [] -> none ;
173- HasNoUnquote -> all ;
174- true -> unused_only
175- end ,
155+ CheckClauses = (Context == []) andalso HasNoUnquote ,
176156
177157 % % Check if there is a file information in the definition.
178158 % % If so, we assume this come from another source and
@@ -223,7 +203,7 @@ store_definition(Meta, Kind, CheckClauses, Name, Arity, DefaultsArgs, Guards, Bo
223203
224204 store_definition (CheckClauses , Kind , Meta , Name , Arity , File ,
225205 Module , DefaultsLength , Clauses ),
226- [store_definition (none , Kind , Meta , Name , length (DefaultArgs ), File ,
206+ [store_definition (false , Kind , [{ context , ? MODULE } | Meta ] , Name , length (DefaultArgs ), File ,
227207 Module , 0 , [Default ]) || {_ , DefaultArgs , _ , _ } = Default <- Defaults ],
228208
229209 run_on_definition_callbacks (Meta , Kind , Module , Name , DefaultsArgs , Guards , Body , E ),
@@ -281,11 +261,10 @@ run_on_definition_callbacks(Meta, Kind, Module, Name, Args, Guards, Body, E) ->
281261 ok .
282262
283263store_definition (CheckClauses , Kind , Meta , Name , Arity , File , Module , Defaults , Clauses )
284- when CheckClauses == all ; CheckClauses == none ; CheckClauses == unused_only ->
264+ when is_boolean ( CheckClauses ) ->
285265 {Set , Bag } = elixir_module :data_tables (Module ),
286266 Tuple = {Name , Arity },
287267 HasBody = Clauses =/= [],
288- CheckAll = CheckClauses == all ,
289268
290269 if
291270 Defaults > 0 ->
@@ -299,7 +278,7 @@ store_definition(CheckClauses, Kind, Meta, Name, Arity, File, Module, Defaults,
299278 [{_ , StoredKind , StoredMeta , StoredFile , StoredCheck , {StoredDefaults , LastHasBody , LastDefaults }}] ->
300279 check_valid_kind (Meta , File , Name , Arity , Kind , StoredKind , StoredFile , StoredMeta ),
301280 check_valid_defaults (Meta , File , Name , Arity , Kind , Defaults , StoredMeta , StoredDefaults , LastDefaults , HasBody , LastHasBody ),
302- (CheckAll and ( StoredCheck == all ) ) andalso
281+ (CheckClauses and StoredCheck ) andalso
303282 check_valid_clause (Meta , File , Name , Arity , Kind , Set , StoredMeta , StoredFile , Clauses ),
304283
305284 {max (Defaults , StoredDefaults ), StoredMeta };
@@ -308,7 +287,7 @@ store_definition(CheckClauses, Kind, Meta, Name, Arity, File, Module, Defaults,
308287 {Defaults , Meta }
309288 end ,
310289
311- CheckAll andalso ets :insert (Set , {? last_def , Tuple }),
290+ CheckClauses andalso ets :insert (Set , {? last_def , Tuple }),
312291 ets :insert (Bag , [{{clauses , Tuple }, Clause } || Clause <- Clauses ]),
313292 ets :insert (Set , {{def , Tuple }, Kind , FirstMeta , File , CheckClauses , {MaxDefaults , HasBody , Defaults }}).
314293
0 commit comments