@@ -355,99 +355,101 @@ defmodule Module.Types.Helpers do
355355 { :& , amp_meta , [ { :/ , slash_meta , [ { { :. , dot_meta , [ mod , fun ] } , call_meta , [ ] } , arity ] } ] }
356356
357357 { :case , meta , [ expr , [ do: clauses ] ] } ->
358- if meta [ :type_check ] == :expr do
359- case clauses do
360- [
361- { :-> , _ ,
362- [
358+ case meta [ :type_check ] do
359+ { : case, _ } ->
360+ case clauses do
361+ [
362+ { :-> , _ ,
363363 [
364- { :when , _ ,
365- [
366- { var , _ , Kernel } ,
367- { { :. , _ , [ :erlang , :orelse ] } , _ ,
368- [
369- { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , false ] } ,
370- { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , nil ] }
371- ] }
372- ] }
373- ] ,
374- true
375- ] } ,
376- { :-> , _ , [ [ { :_ , _ , Kernel } ] , false ] }
377- ] ->
378- { :! , meta , [ expr ] }
379-
380- [
381- { :-> , _ ,
382- [
364+ [
365+ { :when , _ ,
366+ [
367+ { var , _ , Kernel } ,
368+ { { :. , _ , [ :erlang , :orelse ] } , _ ,
369+ [
370+ { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , false ] } ,
371+ { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , nil ] }
372+ ] }
373+ ] }
374+ ] ,
375+ true
376+ ] } ,
377+ { :-> , _ , [ [ { :_ , _ , Kernel } ] , false ] }
378+ ] ->
379+ { :! , meta , [ expr ] }
380+
381+ [
382+ { :-> , _ ,
383383 [
384- { :when , _ ,
385- [
386- { var , _ , Kernel } ,
387- { { :. , _ , [ :erlang , :orelse ] } , _ ,
388- [
389- { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , false ] } ,
390- { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , nil ] }
391- ] }
392- ] }
393- ] ,
394- right_side
395- ] } ,
396- { :-> , _ , [ [ { var , _ , Kernel } ] , { var , _ , Kernel } ] }
397- ] ->
398- { :|| , meta , [ expr , right_side ] }
399-
400- [
401- { :-> , _ ,
402- [
384+ [
385+ { :when , _ ,
386+ [
387+ { var , _ , Kernel } ,
388+ { { :. , _ , [ :erlang , :orelse ] } , _ ,
389+ [
390+ { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , false ] } ,
391+ { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , nil ] }
392+ ] }
393+ ] }
394+ ] ,
395+ right_side
396+ ] } ,
397+ { :-> , _ , [ [ { var , _ , Kernel } ] , { var , _ , Kernel } ] }
398+ ] ->
399+ { :|| , meta , [ expr , right_side ] }
400+
401+ [
402+ { :-> , _ ,
403403 [
404- { :when , _ ,
405- [
406- { var , _ , Kernel } ,
407- { { :. , _ , [ :erlang , :orelse ] } , _ ,
408- [
409- { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , false ] } ,
410- { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , nil ] }
411- ] }
412- ] }
413- ] ,
414- { var , _ , Kernel }
415- ] } ,
416- { :-> , _ , [ [ { :_ , _ , Kernel } ] , right_side ] }
417- ] ->
418- { :&& , meta , [ expr , right_side ] }
419-
420- [
421- { :-> , _ ,
422- [
404+ [
405+ { :when , _ ,
406+ [
407+ { var , _ , Kernel } ,
408+ { { :. , _ , [ :erlang , :orelse ] } , _ ,
409+ [
410+ { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , false ] } ,
411+ { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , nil ] }
412+ ] }
413+ ] }
414+ ] ,
415+ { var , _ , Kernel }
416+ ] } ,
417+ { :-> , _ , [ [ { :_ , _ , Kernel } ] , right_side ] }
418+ ] ->
419+ { :&& , meta , [ expr , right_side ] }
420+
421+ [
422+ { :-> , _ ,
423423 [
424- { :when , _ ,
425- [
426- { var , _ , Kernel } ,
427- { { :. , _ , [ :erlang , :orelse ] } , _ ,
428- [
429- { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , false ] } ,
430- { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , nil ] }
431- ] }
432- ] }
433- ] ,
434- else_block
435- ] } ,
436- { :-> , _ , [ [ { :_ , _ , Kernel } ] , do_block ] }
437- ] ->
438- { :if , meta , [ expr , [ do: do_block , else: else_block ] ] }
439-
440- [
441- { :-> , _ , [ [ false ] , else_block ] } ,
442- { :-> , _ , [ [ true ] , do_block ] }
443- ] ->
444- { :if , meta , [ expr , [ do: do_block , else: else_block ] ] }
424+ [
425+ { :when , _ ,
426+ [
427+ { var , _ , Kernel } ,
428+ { { :. , _ , [ :erlang , :orelse ] } , _ ,
429+ [
430+ { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , false ] } ,
431+ { { :. , _ , [ :erlang , :"=:=" ] } , _ , [ { var , _ , Kernel } , nil ] }
432+ ] }
433+ ] }
434+ ] ,
435+ else_block
436+ ] } ,
437+ { :-> , _ , [ [ { :_ , _ , Kernel } ] , do_block ] }
438+ ] ->
439+ { :if , meta , [ expr , [ do: do_block , else: else_block ] ] }
440+
441+ [
442+ { :-> , _ , [ [ false ] , else_block ] } ,
443+ { :-> , _ , [ [ true ] , do_block ] }
444+ ] ->
445+ { :if , meta , [ expr , [ do: do_block , else: else_block ] ] }
446+
447+ _ ->
448+ { :case , meta , [ expr , [ do: { :... , [ ] , [ ] } ] ] }
449+ end
445450
446- _ ->
447- { :case , meta , [ expr , [ do: { :... , [ ] , [ ] } ] ] }
448- end
449- else
450- { :case , meta , [ expr , [ do: { :... , [ ] , [ ] } ] ] }
451+ _ ->
452+ { :case , meta , [ expr , [ do: { :... , [ ] , [ ] } ] ] }
451453 end
452454
453455 { :try , meta , [ [ do: _ ] ++ _ ] } ->
0 commit comments