From: Mark Date: Tue, 18 Jul 2023 20:44:02 +0000 (-0600) Subject: remove failing append choicepoint in atom_concat/3 special case (#1893) X-Git-Tag: v0.9.2~40 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=14646074bea92c5c2d51c1961e27ecbc7b29fe20;p=scryer-prolog.git remove failing append choicepoint in atom_concat/3 special case (#1893) --- diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index 7f19d148..983503cb 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -1559,9 +1559,14 @@ atom_concat(Atom_1, Atom_2, Atom_12) :- ( var(Atom_12) -> throw(error(instantiation_error, atom_concat/3)) ; atom_chars(Atom_12, Atom_12_Chars), - lists:append(BeforeChars, AfterChars, Atom_12_Chars), - atom_chars(Atom_1, BeforeChars), - atom_chars(Atom_2, AfterChars) + ( var(Atom_2) -> + lists:append(BeforeChars, AfterChars, Atom_12_Chars), + atom_chars(Atom_2, AfterChars) + ; atom_chars(Atom_2, AfterChars), + lists:append(BeforeChars, AfterChars, Atom_12_Chars), + ! + ), + atom_chars(Atom_1, BeforeChars) ) ; var(Atom_2) -> ( var(Atom_12) -> throw(error(instantiation_error, atom_concat/3))