Skip to main content

dada_ir_ast/ast/
use_item.rs

1use dada_util::SalsaSerialize;
2
3use crate::span::{Span, Spanned};
4
5use super::{AstPath, SpannedIdentifier};
6
7/// `use $crate.$path [as $id]`
8#[derive(SalsaSerialize)]
9#[salsa::tracked(debug)]
10pub struct AstUse<'db> {
11    pub span: Span<'db>,
12    pub crate_name: SpannedIdentifier<'db>,
13    #[return_ref]
14    pub path: AstPath<'db>,
15    pub as_id: Option<SpannedIdentifier<'db>>,
16}
17
18impl<'db> Spanned<'db> for AstUse<'db> {
19    fn span(&self, db: &'db dyn crate::Db) -> Span<'db> {
20        AstUse::span(*self, db)
21    }
22}