compare characters directly in term comparison tests

This commit is contained in:
Mark Thom
2020-03-05 12:50:11 -07:00
parent 2d3ce32314
commit 9852e30b39

View File

@@ -2300,6 +2300,14 @@ impl MachineState {
return Ordering::Greater; return Ordering::Greater;
} }
} }
(
HeapCellValue::Addr(Addr::Con(Constant::Char(c1))),
HeapCellValue::Addr(Addr::Con(Constant::Char(c2))),
) => {
if c1 != c2 {
return c1.cmp(&c2);
}
}
( (
HeapCellValue::Addr(Addr::Con(Constant::Atom(atom, _))), HeapCellValue::Addr(Addr::Con(Constant::Atom(atom, _))),
HeapCellValue::Addr(Addr::Con(Constant::Char(c))), HeapCellValue::Addr(Addr::Con(Constant::Char(c))),
@@ -2366,8 +2374,10 @@ impl MachineState {
HeapCellValue::Addr(Addr::AttrVar(hc1)), HeapCellValue::Addr(Addr::AttrVar(hc1)),
HeapCellValue::Addr(Addr::PStrTail(hc2, _)), HeapCellValue::Addr(Addr::PStrTail(hc2, _)),
) => { ) => {
if hc1 != hc2 {
return hc1.cmp(&hc2); return hc1.cmp(&hc2);
} }
}
(HeapCellValue::Addr(Addr::HeapCell(_)), _) (HeapCellValue::Addr(Addr::HeapCell(_)), _)
| (HeapCellValue::Addr(Addr::AttrVar(_)), _) | (HeapCellValue::Addr(Addr::AttrVar(_)), _)
| (HeapCellValue::Addr(Addr::PStrTail(..)), _) => { | (HeapCellValue::Addr(Addr::PStrTail(..)), _) => {