@@ -139,7 +139,7 @@ escape(Expr, Op, Unquote) ->
139
139
unquote = Unquote
140
140
}).
141
141
142
- do_escape ({Left , Meta , Right }, # elixir_quote {op = prune_metadata } = Q ) ->
142
+ do_escape ({Left , Meta , Right }, # elixir_quote {op = prune_metadata } = Q ) when is_list ( Meta ) ->
143
143
TM = [{K , V } || {K , V } <- Meta , (K == no_parens ) orelse (K == line )],
144
144
TL = do_quote (Left , Q ),
145
145
TR = do_quote (Right , Q ),
@@ -263,7 +263,7 @@ quote(Expr, Q) ->
263
263
264
264
% % quote/unquote
265
265
266
- do_quote ({quote , Meta , [Arg ]}, Q ) ->
266
+ do_quote ({quote , Meta , [Arg ]}, Q ) when is_list ( Meta ) ->
267
267
TArg = do_quote (Arg , Q # elixir_quote {unquote = false }),
268
268
269
269
NewMeta = case Q of
@@ -273,7 +273,7 @@ do_quote({quote, Meta, [Arg]}, Q) ->
273
273
274
274
{'{}' , [], [quote , meta (NewMeta , Q ), [TArg ]]};
275
275
276
- do_quote ({quote , Meta , [Opts , Arg ]}, Q ) ->
276
+ do_quote ({quote , Meta , [Opts , Arg ]}, Q ) when is_list ( Meta ) ->
277
277
TOpts = do_quote (Opts , Q ),
278
278
TArg = do_quote (Arg , Q # elixir_quote {unquote = false }),
279
279
@@ -284,13 +284,13 @@ do_quote({quote, Meta, [Opts, Arg]}, Q) ->
284
284
285
285
{'{}' , [], [quote , meta (NewMeta , Q ), [TOpts , TArg ]]};
286
286
287
- do_quote ({unquote , _Meta , [Expr ]}, # elixir_quote {unquote = true }) ->
287
+ do_quote ({unquote , Meta , [Expr ]}, # elixir_quote {unquote = true }) when is_list ( Meta ) ->
288
288
Expr ;
289
289
290
290
% % Aliases
291
291
292
292
do_quote ({'__aliases__' , Meta , [H | T ]}, # elixir_quote {aliases_hygiene = (#{}= E )} = Q )
293
- when is_atom (H ), H /= 'Elixir' ->
293
+ when is_list ( Meta ), is_atom (H ), H /= 'Elixir' ->
294
294
Annotation =
295
295
case elixir_aliases :expand (Meta , [H | T ], E , true ) of
296
296
Atom when is_atom (Atom ) -> Atom ;
@@ -312,16 +312,16 @@ do_quote({Name, Meta, nil}, #elixir_quote{op=add_context} = Q)
312
312
313
313
% % Unquote
314
314
315
- do_quote ({{{'.' , Meta , [Left , unquote ]}, _ , [Expr ]}, _ , Args }, # elixir_quote {unquote = true } = Q ) ->
315
+ do_quote ({{{'.' , Meta , [Left , unquote ]}, _ , [Expr ]}, _ , Args }, # elixir_quote {unquote = true } = Q ) when is_list ( Meta ) ->
316
316
do_quote_call (Left , Meta , Expr , Args , Q );
317
317
318
- do_quote ({{'.' , Meta , [Left , unquote ]}, _ , [Expr ]}, # elixir_quote {unquote = true } = Q ) ->
318
+ do_quote ({{'.' , Meta , [Left , unquote ]}, _ , [Expr ]}, # elixir_quote {unquote = true } = Q ) when is_list ( Meta ) ->
319
319
do_quote_call (Left , Meta , Expr , nil , Q );
320
320
321
321
% % Imports
322
322
323
323
do_quote ({'&' , Meta , [{'/' , _ , [{F , _ , C }, A ]}] = Args },
324
- # elixir_quote {imports_hygiene = (#{}= E )} = Q ) when is_atom (F ), is_integer (A ), is_atom (C ) ->
324
+ # elixir_quote {imports_hygiene = (#{}= E )} = Q ) when is_atom (F ), is_integer (A ), is_atom (C ), is_list ( Meta ) ->
325
325
NewMeta =
326
326
case elixir_dispatch :find_import (Meta , F , A , E ) of
327
327
false ->
@@ -571,4 +571,4 @@ annotate_def({'when', Meta, [Left, Right]}, Context) ->
571
571
annotate_def ({Fun , Meta , Args }, Context ) ->
572
572
{Fun , keystore (context , Meta , Context ), Args };
573
573
annotate_def (Other , _Context ) ->
574
- Other .
574
+ Other .
0 commit comments