use std::cell::RefCell; use std::rc::Rc; use crate::name_analysis::symbol::class_member_symbol::ClassMemberSymbol; use crate::name_analysis::symbol::parameter_symbol::ParameterSymbol; use crate::name_analysis::symbol::Symbol; use crate::name_analysis::symbol::variable_symbol::VariableSymbol; pub enum LVSymbol { ClassMember(Rc>), Parameter(Rc>), Variable(Rc>), } impl LVSymbol { pub fn to_symbol(self) -> Rc> { match self { LVSymbol::ClassMember(class_member_symbol) => { class_member_symbol as Rc> } LVSymbol::Parameter(parameter_symbol) => { parameter_symbol as Rc> } LVSymbol::Variable(variable_symbol) => { variable_symbol as Rc> } } } }