Fate compiler #553

Merged
zxq9 merged 87 commits from fate-compiler into master 2019-05-07 22:48:47 +09:00
Showing only changes of commit 6806554d77 - Show all commits

View File

@ -201,11 +201,10 @@ split_to_scode(Env, {split, {tuple, _}, X, Alts}) ->
{Code, Env1} = match_tuple(Env, Arg, Xs), {Code, Env1} = match_tuple(Env, Arg, Xs),
[Code, split_to_scode(Env1, S)] [Code, split_to_scode(Env1, S)]
end, end,
[aeb_fate_code:push(Arg), case Def == missing andalso Alt /= missing of
case Def == missing andalso Alt /= missing of true -> Alt; % skip the switch if single tuple pattern
true -> Alt; % skip the switch if single tuple pattern false -> [{switch, tuple, [Alt], Def}]
false -> {switch, tuple, [Alt], Def} end;
end];
split_to_scode(Env, {split, boolean, X, Alts}) -> split_to_scode(Env, {split, boolean, X, Alts}) ->
{Def, Alts1} = catchall_to_scode(Env, X, Alts), {Def, Alts1} = catchall_to_scode(Env, X, Alts),
GetAlt = fun(B) -> GetAlt = fun(B) ->