luaur_analysis/methods/
identifier_hash_operator_call.rs1use crate::records::identifier::Identifier;
2use crate::records::identifier_hash::IdentifierHash;
3use core::hash::{Hash, Hasher};
4
5impl IdentifierHash {
6 pub fn identifier_hash_operator_call(ident: &Identifier) -> usize {
7 let name = ident.name();
8 let ctx = ident.ctx() as *const ();
9
10 let mut hasher = std::collections::hash_map::DefaultHasher::new();
11 name.hash(&mut hasher);
12 let hash_name = hasher.finish() as usize;
13
14 hasher = std::collections::hash_map::DefaultHasher::new();
15 (ctx as usize).hash(&mut hasher);
16 let hash_ctx = hasher.finish() as usize;
17
18 hash_name ^ hash_ctx
19 }
20}