Import and export improved

- Import paths are now vname and not sym
- Imports and exports accept multiple space-delimited operators in []

as a result, we can now reliably import and export the operator *

- error reporting ergonomics
This commit is contained in:
2023-08-18 21:10:29 +01:00
parent 3fdabc29da
commit 9186bce956
33 changed files with 269 additions and 228 deletions

View File

@@ -2,9 +2,8 @@ use std::rc::Rc;
use super::location::Location;
use super::{ast, postmacro};
use crate::error::{ErrorPosition, ProjectError};
use crate::utils::iter::box_once;
use crate::utils::{BoxedIter, Substack};
use crate::error::ProjectError;
use crate::utils::Substack;
use crate::{Interner, Sym};
#[derive(Debug, Clone)]
@@ -51,9 +50,8 @@ impl ProjectError for Error {
_ => self.description().to_string(),
}
}
fn positions(&self, _i: &Interner) -> BoxedIter<ErrorPosition> {
box_once(ErrorPosition { location: self.location.clone(), message: None })
fn one_position(&self, _i: &Interner) -> Location {
self.location.clone()
}
}