@@ -105,6 +105,10 @@ defmodule ElixirScript.Translate.Forms.Pattern do
105105 { [ PM . head_tail ( hd ( head_patterns ) , hd ( tail_patterns ) ) ] , params }
106106 end
107107
108+ defp process_pattern ( { { :. , _ , [ :erlang , :++ ] } , context , [ head , tail ] } , state ) do
109+ process_pattern ( { :| , context , [ head , tail ] } , state )
110+ end
111+
108112 defp process_pattern ( { :%{} , _ , props } , state ) do
109113 properties = Enum . map ( props , fn ( { key , value } ) ->
110114 { pattern , params } = process_pattern ( value , state )
@@ -144,18 +148,6 @@ defmodule ElixirScript.Translate.Forms.Pattern do
144148 { [ PM . bitstring_match ( elements ) ] , params }
145149 end
146150
147- defp process_pattern ( [ { :| , _ , [ head , tail ] } ] , state ) do
148- { head_patterns , head_params } = process_pattern ( head , state )
149- { tail_patterns , tail_params } = process_pattern ( tail , state )
150- params = head_params ++ tail_params
151-
152- { [ PM . head_tail ( hd ( head_patterns ) , hd ( tail_patterns ) ) ] , params }
153- end
154-
155- defp process_pattern ( { { :. , _ , [ :erlang , :++ ] } , _ , [ prefix , value ] } , state ) do
156- { [ PM . starts_with ( prefix ) ] , [ Form . compile! ( value , state ) ] }
157- end
158-
159151 defp process_pattern ( { :<> , _ , [ prefix , value ] } , state ) do
160152 { [ PM . starts_with ( prefix ) ] , [ Form . compile! ( value , state ) ] }
161153 end
0 commit comments