This commit is contained in:
Lukas Wirth 2023-09-26 12:25:59 +02:00
parent d3cc3bc00e
commit 0dbde71159

View File

@ -75,7 +75,7 @@ macro_rules! eprintln {
#[derive(Debug, PartialEq, Eq)]
pub struct Parse<T> {
green: GreenNode,
errors: Arc<Vec<SyntaxError>>,
errors: Arc<[SyntaxError]>,
_ty: PhantomData<fn() -> T>,
}
@ -87,7 +87,7 @@ fn clone(&self) -> Parse<T> {
impl<T> Parse<T> {
fn new(green: GreenNode, errors: Vec<SyntaxError>) -> Parse<T> {
Parse { green, errors: Arc::new(errors), _ty: PhantomData }
Parse { green, errors: errors.into(), _ty: PhantomData }
}
pub fn syntax_node(&self) -> SyntaxNode {
@ -107,7 +107,7 @@ pub fn tree(&self) -> T {
T::cast(self.syntax_node()).unwrap()
}
pub fn ok(self) -> Result<T, Arc<Vec<SyntaxError>>> {
pub fn ok(self) -> Result<T, Arc<[SyntaxError]>> {
if self.errors.is_empty() {
Ok(self.tree())
} else {
@ -144,7 +144,7 @@ fn incremental_reparse(&self, indel: &Indel) -> Option<Parse<SourceFile>> {
parsing::incremental_reparse(self.tree().syntax(), indel, self.errors.to_vec()).map(
|(green_node, errors, _reparsed_range)| Parse {
green: green_node,
errors: Arc::new(errors),
errors: errors.into(),
_ty: PhantomData,
},
)
@ -168,7 +168,7 @@ pub fn parse(text: &str) -> Parse<SourceFile> {
errors.extend(validation::validate(&root));
assert_eq!(root.kind(), SyntaxKind::SOURCE_FILE);
Parse { green, errors: Arc::new(errors), _ty: PhantomData }
Parse { green, errors: errors.into(), _ty: PhantomData }
}
}
@ -275,7 +275,7 @@ pub fn reparse_as_comma_separated_expr(self) -> Parse<ast::MacroEagerInput> {
let (green, errors) = builder.finish_raw();
Parse { green, errors: Arc::new(errors), _ty: PhantomData }
Parse { green, errors: errors.into(), _ty: PhantomData }
}
}