diff --git a/src/green/node.rs b/src/green/node.rs index 5f6f540..13f245d 100644 --- a/src/green/node.rs +++ b/src/green/node.rs @@ -5,7 +5,7 @@ use std::{ }; use fxhash::FxHasher32; -use servo_arc::{Arc, HeaderSlice, HeaderWithLength, ThinArc}; +use servo_arc::{Arc, HeaderWithLength, ThinArc}; use crate::{ green::{GreenElement, GreenElementRef, PackedGreenElement, SyntaxKind}, @@ -122,11 +122,6 @@ impl GreenNode { inner: self.data.slice.iter(), } } - - pub(crate) fn ptr(&self) -> *const u8 { - let r: &HeaderSlice<_, _> = &self.data; - r as *const _ as _ - } } impl Hash for GreenNode { diff --git a/src/syntax.rs b/src/syntax.rs index 0e2a106..411a3e4 100644 --- a/src/syntax.rs +++ b/src/syntax.rs @@ -185,7 +185,7 @@ impl SyntaxNode { // Identity semantics for hash & eq impl PartialEq for SyntaxNode { fn eq(&self, other: &SyntaxNode) -> bool { - self.green().ptr() == other.green().ptr() && self.text_range().start() == other.text_range().start() + self.data == other.data } } @@ -193,8 +193,7 @@ impl Eq for SyntaxNode {} impl Hash for SyntaxNode { fn hash(&self, state: &mut H) { - ptr::hash(self.green().ptr(), state); - self.text_range().start().hash(state); + ptr::hash(self.data, state); } }