From 4312ad935d881f269fa7e9cc3d880fa763db957d Mon Sep 17 00:00:00 2001
From: Nadrieril
Date: Thu, 30 Jan 2020 22:10:40 +0000
Subject: Use Rc equality to shortcut Value equality

---
 dhall/src/semantics/nze/value.rs | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'dhall/src/semantics/nze')

diff --git a/dhall/src/semantics/nze/value.rs b/dhall/src/semantics/nze/value.rs
index 67ab90a..de40d53 100644
--- a/dhall/src/semantics/nze/value.rs
+++ b/dhall/src/semantics/nze/value.rs
@@ -623,10 +623,9 @@ impl TextLit {
 }
 
 /// Compare two values for equality modulo alpha/beta-equivalence.
-// TODO: use Rc comparison to shortcut on identical pointers
 impl std::cmp::PartialEq for Value {
     fn eq(&self, other: &Self) -> bool {
-        *self.kind() == *other.kind()
+        Rc::ptr_eq(&self.0, &other.0) || self.kind() == other.kind()
     }
 }
 impl std::cmp::Eq for Value {}
-- 
cgit v1.2.3