@@ -1365,26 +1365,26 @@ defmodule Code.Formatter do
13651365 ## Sigils
13661366
13671367 defp maybe_sigil_to_algebra ( fun , meta , args , state ) do
1368- case { Atom . to_string ( fun ) , args } do
1369- { << "sigil_" , name >> , [ { :<<>> , _ , entries } , modifiers ] } ->
1370- opening_terminator = Keyword . fetch! ( meta , :terminator )
1371- doc = << ?~ , name , opening_terminator :: binary >>
1368+ with << "sigil_" , name >> <- Atom . to_string ( fun ) ,
1369+ [ { :<<>> , _ , entries } , modifiers ] when is_list ( modifiers ) <- args ,
1370+ opening_terminator when not is_nil ( opening_terminator ) <- Keyword . get ( meta , :terminator ) do
1371+ doc = << ?~ , name , opening_terminator :: binary >>
13721372
1373- if opening_terminator in [ @ double_heredoc , @ single_heredoc ] do
1374- closing_terminator = concat ( opening_terminator , List . to_string ( modifiers ) )
1373+ if opening_terminator in [ @ double_heredoc , @ single_heredoc ] do
1374+ closing_terminator = concat ( opening_terminator , List . to_string ( modifiers ) )
13751375
1376- { doc , state } =
1377- entries
1378- |> prepend_heredoc_line ( )
1379- |> interpolation_to_algebra ( :heredoc , state , doc , closing_terminator )
1380-
1381- { force_unfit ( doc ) , state }
1382- else
1383- escape = closing_sigil_terminator ( opening_terminator )
1384- closing_terminator = concat ( escape , List . to_string ( modifiers ) )
1385- interpolation_to_algebra ( entries , escape , state , doc , closing_terminator )
1386- end
1376+ { doc , state } =
1377+ entries
1378+ |> prepend_heredoc_line ( )
1379+ |> interpolation_to_algebra ( :heredoc , state , doc , closing_terminator )
13871380
1381+ { force_unfit ( doc ) , state }
1382+ else
1383+ escape = closing_sigil_terminator ( opening_terminator )
1384+ closing_terminator = concat ( escape , List . to_string ( modifiers ) )
1385+ interpolation_to_algebra ( entries , escape , state , doc , closing_terminator )
1386+ end
1387+ else
13881388 _ ->
13891389 :error
13901390 end
0 commit comments