erg/compiler/erg_common/fresh.rs
Shunsuke Shibayama 9b1457b695 Fix #265
2022-12-01 23:02:06 +09:00

21 lines
408 B
Rust

use crate::shared::Shared;
thread_local! {
static VAR_ID: Shared<usize> = Shared::new(0);
}
pub fn fresh_varname() -> String {
VAR_ID.with(|id| {
*id.borrow_mut() += 1;
let i = *id.borrow();
format!("%v{i}")
})
}
pub fn fresh_param_name() -> String {
VAR_ID.with(|id| {
*id.borrow_mut() += 1;
let i = *id.borrow();
format!("%p{i}")
})
}