From 86176dce8dbcb7565f79f4240081187cfbcb85c1 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 3 Apr 2022 01:37:19 -0600 Subject: [PATCH] compare complete strings to one another in write_literal_to_var (#1388) --- src/machine/machine_state_impl.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/machine/machine_state_impl.rs b/src/machine/machine_state_impl.rs index f5789878..7519c69e 100644 --- a/src/machine/machine_state_impl.rs +++ b/src/machine/machine_state_impl.rs @@ -1989,20 +1989,23 @@ impl MachineState { ) } (HeapCellValueTag::CStr, cstr_atom) => { - match store_v.get_tag() { - HeapCellValueTag::PStrLoc - | HeapCellValueTag::Lis - | HeapCellValueTag::Str => { + read_heap_cell!(store_v, + (HeapCellValueTag::PStrLoc + | HeapCellValueTag::Lis + | HeapCellValueTag::Str) => { self.match_partial_string(store_v, cstr_atom, false); } - HeapCellValueTag::AttrVar | HeapCellValueTag::Var => { + (HeapCellValueTag::AttrVar | HeapCellValueTag::Var) => { let r = store_v.as_var().unwrap(); self.bind(r, lit); } + (HeapCellValueTag::CStr, cstr2_atom) => { + self.fail = cstr_atom != cstr2_atom; + } _ => { self.fail = true; } - } + ); } _ => { unreachable!() -- 2.54.0