1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use leo_ast::{Error as FormattedError, Identifier, ImportSymbol, Span};
#[derive(Debug, Error)]
pub enum ImportError {
#[error("{}", _0)]
Error(#[from] FormattedError),
}
impl ImportError {
fn new_from_span(message: String, span: Span) -> Self {
ImportError::Error(FormattedError::new_from_span(message, span))
}
pub fn unknown_package(identifier: Identifier) -> Self {
let message = format!(
"cannot find imported package `{}` in source files or import directory",
identifier.name
);
Self::new_from_span(message, identifier.span)
}
pub fn unknown_symbol(symbol: ImportSymbol, file: String) -> Self {
let message = format!("cannot find imported symbol `{}` in imported file `{}`", symbol, file);
let error = FormattedError::new_from_span(message, symbol.span);
ImportError::Error(error)
}
}