use crate::source_range::SourceRange; use crate::type_info::TypeInfo; pub struct IntegerLiteral { value: i32, source_range: SourceRange, type_info: &'static TypeInfo, } impl IntegerLiteral { pub fn new(value: i32, source_range: SourceRange) -> Self { const TYPE_INFO: TypeInfo = TypeInfo::Integer; Self { value, source_range, type_info: &TYPE_INFO, } } pub fn value(&self) -> i32 { self.value } pub fn type_info(&self) -> &TypeInfo { &self.type_info } pub fn source_range(&self) -> &SourceRange { &self.source_range } }