From 0c1c4584cb46cc3564f4d18bd3f451e648c413b6 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 14 Jan 2021 03:47:45 +0300 Subject: feat(tazjin/rlox): Implement PartialEq for interpreter::Value Values have equality, unless they're functions. Change-Id: Ie5c623081a1fa556e6b7a5251b0ce85af68dd31a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2385 Reviewed-by: tazjin Tested-by: BuildkiteCI --- users/tazjin/rlox/src/interpreter.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/users/tazjin/rlox/src/interpreter.rs b/users/tazjin/rlox/src/interpreter.rs index ef76af9168..744e6ea895 100644 --- a/users/tazjin/rlox/src/interpreter.rs +++ b/users/tazjin/rlox/src/interpreter.rs @@ -38,6 +38,16 @@ pub enum Value { Callable(Callable), } +impl PartialEq for Value { + fn eq(&self, other: &Self) -> bool { + match (self, other) { + (Value::Literal(lhs), Value::Literal(rhs)) => lhs == rhs, + // functions do not have equality + _ => false, + } + } +} + impl From for Value { fn from(lit: Literal) -> Value { Value::Literal(lit) -- cgit 1.4.1