Instant unification error on arguments count mismatch (#225)

* Instant unification error on arguments count mismatch

* add testcase

* Add newline
This commit is contained in:
Radosław Rowicki
2020-02-21 10:28:55 +01:00
committed by GitHub
parent 2bf65cfd98
commit bd7ed2ef8c
3 changed files with 30 additions and 1 deletions
+2 -1
View File
@@ -2072,7 +2072,8 @@ unify1(_Env, {qcon, _, Name}, {qcon, _, Name}, _When) ->
true;
unify1(_Env, {bytes_t, _, Len}, {bytes_t, _, Len}, _When) ->
true;
unify1(Env, {fun_t, _, Named1, Args1, Result1}, {fun_t, _, Named2, Args2, Result2}, When) ->
unify1(Env, {fun_t, _, Named1, Args1, Result1}, {fun_t, _, Named2, Args2, Result2}, When)
when length(Args1) == length(Args2) ->
unify(Env, Named1, Named2, When) andalso
unify(Env, Args1, Args2, When) andalso unify(Env, Result1, Result2, When);
unify1(Env, {app_t, _, {Tag, _, F}, Args1}, {app_t, _, {Tag, _, F}, Args2}, When)