use super::definition::Definition;
use super::name::{InputPosition, SymbolName};
use crate::ids::{FileId, SymbolId};
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
pub struct SymbolReference {
pub position: InputPosition,
pub file: FileId,
pub index: u32,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct UndefinedSymbol<'a> {
pub symbol: SymbolId,
pub name: SymbolName<'a>,
pub references: Vec<SymbolReference>,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct DuplicateSymbol<'a> {
pub symbol: SymbolId,
pub name: SymbolName<'a>,
pub winner: Definition,
pub others: Vec<Definition>,
}