use std::collections::HashMap;
use proc_macro2::Ident;
use quote::format_ident;
use crate::codegen::CodeGen;
impl CodeGen {
pub(super) fn make_global_ident_map(&mut self) {
self.global_fp_to_ident = self
.program
.relations()
.iter()
.map(|rel| (rel.fingerprint(), format_ident!("{}", rel.name())))
.collect();
}
pub(super) fn find_global_ident(&self, fp: u64) -> Ident {
self.global_fp_to_ident
.get(&fp)
.cloned()
.unwrap_or_else(|| format_ident!("t_{}", fp))
}
}
pub(crate) fn find_local_ident(local_fp_to_ident: &HashMap<u64, Ident>, fp: u64) -> Ident {
local_fp_to_ident
.get(&fp)
.cloned()
.unwrap_or_else(|| format_ident!("t_{}", fp))
}