use std::cell::RefCell;
use crate::{Expression, Statement, Type};
use leo_ast::Identifier;
#[derive(Clone, Copy, PartialEq)]
pub enum VariableDeclaration {
Definition,
IterationDefinition,
Parameter,
Input,
}
#[derive(Clone)]
pub struct InnerVariable<'a> {
pub id: u32,
pub name: Identifier,
pub type_: Type<'a>,
pub mutable: bool,
pub const_: bool, pub declaration: VariableDeclaration,
pub references: Vec<&'a Expression<'a>>, pub assignments: Vec<&'a Statement<'a>>, }
pub type Variable<'a> = RefCell<InnerVariable<'a>>;