diff options
Diffstat (limited to 'lib/compiler/test/bs_bincomp_SUITE.erl')
-rw-r--r-- | lib/compiler/test/bs_bincomp_SUITE.erl | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/lib/compiler/test/bs_bincomp_SUITE.erl b/lib/compiler/test/bs_bincomp_SUITE.erl index 9ac261c805..0d129a4a48 100644 --- a/lib/compiler/test/bs_bincomp_SUITE.erl +++ b/lib/compiler/test/bs_bincomp_SUITE.erl @@ -101,26 +101,26 @@ extended_bit_aligned(Config) when is_list(Config) -> mixed(Config) when is_list(Config) -> cs_init(), <<2,3,3,4,4,5,5,6>> = - cs(<< <<(X+Y)>> || <<X>> <= <<1,2,3,4>>, <<Y>> <= <<1,2>> >>), + cs_default(<< <<(X+Y)>> || <<X>> <= <<1,2,3,4>>, <<Y>> <= <<1,2>> >>), <<2,3,3,4,4,5,5,6>> = - << <<(X+Y)>> || <<X>> <= <<1,2,3,4>>, Y <- [1,2] >>, + cs_default(<< <<(X+Y)>> || <<X>> <= <<1,2,3,4>>, Y <- [1,2] >>), <<2,3,3,4,4,5,5,6>> = - cs(<< <<(X+Y)>> || X <- [1,2,3,4], Y <- [1,2] >>), + cs_default(<< <<(X+Y)>> || X <- [1,2,3,4], Y <- [1,2] >>), One = id([1,2,3,4]), Two = id([1,2]), <<2,3,3,4,4,5,5,6>> = - cs(<< <<(X+Y)>> || X <- One, Y <- Two >>), + cs_default(<< <<(X+Y)>> || X <- One, Y <- Two >>), [2,3,3,4,4,5,5,6] = [(X+Y) || <<X>> <= <<1,2,3,4>>, <<Y>> <= <<1,2>>], [2,3,3,4,4,5,5,6] = [(X+Y) || <<X>> <= <<1,2,3,4>>, Y <- [1,2]], <<2:3,3:3,3:3,4:3,4:3,5:3,5:3,6:3>> = - cs(<< <<(X+Y):3>> || <<X:3>> <= <<1:3,2:3,3:3,4:3>>, - <<Y:3>> <= <<1:3,2:3>> >>), + cs_default(<< <<(X+Y):3>> || <<X:3>> <= <<1:3,2:3,3:3,4:3>>, + <<Y:3>> <= <<1:3,2:3>> >>), <<2:3,3:3,3:3,4:3,4:3,5:3,5:3,6:3>> = - cs(<< <<(X+Y):3>> || <<X:3>> <= <<1:3,2:3,3:3,4:3>>, Y <- [1,2] >>), + cs_default(<< <<(X+Y):3>> || <<X:3>> <= <<1:3,2:3,3:3,4:3>>, Y <- [1,2] >>), <<2:3,3:3,3:3,4:3,4:3,5:3,5:3,6:3>> = - cs(<< <<(X+Y):3>> || X <- [1,2,3,4], Y <- [1,2] >>), + cs_default(<< <<(X+Y):3>> || X <- [1,2,3,4], Y <- [1,2] >>), <<2:3,3:3,3:3,4:3,4:3,5:3,5:3,6:3>> = cs_default(<< <<(X+Y):3>> || {X,Y} <- [{1,1},{1,2},{2,1},{2,2}, {3,1},{3,2},{4,1},{4,2}] >>), @@ -128,8 +128,17 @@ mixed(Config) when is_list(Config) -> [(X+Y) || <<X:3>> <= <<1:3,2:3,3:3,4:3>>, <<Y:3>> <= <<1:3,2:3>>], [2,3,3,4,4,5,5,6] = [(X+Y) || <<X:3>> <= <<1:3,2:3,3:3,4:3>>, {_,Y} <- [{a,1},{b,2}]], + + %% OTP-16899: Nested binary comprehensions would fail to load. + <<0,1,0,2,0,3,99>> = mixed_nested([1,2,3]), + + <<1>> = cs_default(<< <<X>> || L <- [[1]], X <- L >>), + cs_end(). +mixed_nested(L) -> + << << << << E:16 >> || E <- L >> || true >>/binary, 99:(id(8))>>. + filters(Config) when is_list(Config) -> cs_init(), <<"BDF">> = @@ -200,6 +209,11 @@ nomatch(Config) when is_list(Config) -> <<>> = << <<X:32>> || <<X:all/binary>> <= Bin >>, <<>> = << <<X:32>> || <<X:bad/binary>> <= Bin >>, + <<>> = << <<"a">> || <<_:1/float>> <= Bin>>, + + NaN = <<(-1):32>>, + <<>> = << <<"a">> || <<_:32/float>> <= NaN >>, + ok. sizes(Config) when is_list(Config) -> |