@@ -767,54 +767,72 @@ defmodule Module.Types.DescrTest do
767767 intersection ( fun ( [ integer ( ) ] , atom ( ) ) , fun ( [ float ( ) ] , binary ( ) ) )
768768 end
769769
770- test "fun_from_overlapping_clauses " do
770+ test "fun_from_inferred_clauses " do
771771 # No overlap
772- assert fun_from_overlapping_clauses ( [ { [ integer ( ) ] , atom ( ) } , { [ float ( ) ] , binary ( ) } ] )
772+ assert fun_from_inferred_clauses ( [ { [ integer ( ) ] , atom ( ) } , { [ float ( ) ] , binary ( ) } ] )
773773 |> equal? (
774- fun_from_non_overlapping_clauses ( [ { [ integer ( ) ] , atom ( ) } , { [ float ( ) ] , binary ( ) } ] )
774+ intersection (
775+ fun_from_non_overlapping_clauses ( [ { [ integer ( ) ] , atom ( ) } , { [ float ( ) ] , binary ( ) } ] ) ,
776+ fun ( [ number ( ) ] , dynamic ( ) )
777+ )
775778 )
776779
777780 # Subsets
778- assert fun_from_overlapping_clauses ( [ { [ integer ( ) ] , atom ( ) } , { [ number ( ) ] , binary ( ) } ] )
781+ assert fun_from_inferred_clauses ( [ { [ integer ( ) ] , atom ( ) } , { [ number ( ) ] , binary ( ) } ] )
779782 |> equal? (
780- fun_from_non_overlapping_clauses ( [
781- { [ integer ( ) ] , union ( atom ( ) , binary ( ) ) } ,
782- { [ float ( ) ] , binary ( ) }
783- ] )
783+ intersection (
784+ fun_from_non_overlapping_clauses ( [
785+ { [ integer ( ) ] , union ( atom ( ) , binary ( ) ) } ,
786+ { [ float ( ) ] , binary ( ) }
787+ ] ) ,
788+ fun ( [ number ( ) ] , dynamic ( ) )
789+ )
784790 )
785791
786- assert fun_from_overlapping_clauses ( [ { [ number ( ) ] , binary ( ) } , { [ integer ( ) ] , atom ( ) } ] )
792+ assert fun_from_inferred_clauses ( [ { [ number ( ) ] , binary ( ) } , { [ integer ( ) ] , atom ( ) } ] )
787793 |> equal? (
788- fun_from_non_overlapping_clauses ( [
789- { [ integer ( ) ] , union ( atom ( ) , binary ( ) ) } ,
790- { [ float ( ) ] , binary ( ) }
791- ] )
794+ intersection (
795+ fun_from_non_overlapping_clauses ( [
796+ { [ integer ( ) ] , union ( atom ( ) , binary ( ) ) } ,
797+ { [ float ( ) ] , binary ( ) }
798+ ] ) ,
799+ fun ( [ number ( ) ] , dynamic ( ) )
800+ )
792801 )
793802
794803 # Partial
795- assert fun_from_overlapping_clauses ( [
804+ assert fun_from_inferred_clauses ( [
796805 { [ union ( integer ( ) , pid ( ) ) ] , atom ( ) } ,
797806 { [ union ( float ( ) , pid ( ) ) ] , binary ( ) }
798807 ] )
799808 |> equal? (
800- fun_from_non_overlapping_clauses ( [
801- { [ integer ( ) ] , atom ( ) } ,
802- { [ float ( ) ] , binary ( ) } ,
803- { [ pid ( ) ] , union ( atom ( ) , binary ( ) ) }
804- ] )
809+ intersection (
810+ fun_from_non_overlapping_clauses ( [
811+ { [ integer ( ) ] , atom ( ) } ,
812+ { [ float ( ) ] , binary ( ) } ,
813+ { [ pid ( ) ] , union ( atom ( ) , binary ( ) ) }
814+ ] ) ,
815+ fun ( [ union ( number ( ) , pid ( ) ) ] , dynamic ( ) )
816+ )
805817 )
806818
807819 # Difference
808- assert fun_from_overlapping_clauses ( [
820+ assert fun_from_inferred_clauses ( [
809821 { [ integer ( ) , union ( pid ( ) , atom ( ) ) ] , atom ( ) } ,
810822 { [ number ( ) , pid ( ) ] , binary ( ) }
811823 ] )
812824 |> equal? (
813- fun_from_non_overlapping_clauses ( [
814- { [ float ( ) , pid ( ) ] , binary ( ) } ,
815- { [ integer ( ) , atom ( ) ] , atom ( ) } ,
816- { [ integer ( ) , pid ( ) ] , union ( atom ( ) , binary ( ) ) }
817- ] )
825+ intersection (
826+ fun_from_non_overlapping_clauses ( [
827+ { [ float ( ) , pid ( ) ] , binary ( ) } ,
828+ { [ integer ( ) , atom ( ) ] , atom ( ) } ,
829+ { [ integer ( ) , pid ( ) ] , union ( atom ( ) , binary ( ) ) }
830+ ] ) ,
831+ fun_from_non_overlapping_clauses ( [
832+ { [ integer ( ) , union ( pid ( ) , atom ( ) ) ] , dynamic ( ) } ,
833+ { [ number ( ) , pid ( ) ] , dynamic ( ) }
834+ ] )
835+ )
818836 )
819837 end
820838 end
0 commit comments