23 lines
719 B
Rust
23 lines
719 B
Rust
use crate::symbol::constructor_symbol::ConstructorSymbol;
|
|
use crate::symbol::function_symbol::FunctionSymbol;
|
|
use crate::symbol::parameter_symbol::ParameterSymbol;
|
|
use std::rc::Rc;
|
|
|
|
pub enum CallableSymbol {
|
|
Function(Rc<FunctionSymbol>),
|
|
Constructor(Rc<ConstructorSymbol>),
|
|
ErrorPlaceholder,
|
|
}
|
|
|
|
impl CallableSymbol {
|
|
pub fn parameters(&self) -> Vec<Rc<ParameterSymbol>> {
|
|
match self {
|
|
CallableSymbol::Function(function_symbol) => function_symbol.parameters().to_vec(),
|
|
CallableSymbol::Constructor(constructor_symbol) => {
|
|
constructor_symbol.parameters().to_vec()
|
|
}
|
|
CallableSymbol::ErrorPlaceholder => Vec::new(),
|
|
}
|
|
}
|
|
}
|