mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 04:19:13 +00:00
minor: tidy up Parse
a little bit
- Add doc comments to some `Parse` methods - Uses `Parse::new` more
This commit is contained in:
parent
3b763a847a
commit
c4573b26f6
1 changed files with 10 additions and 11 deletions
|
@ -107,14 +107,22 @@ impl<T> Parse<T> {
|
|||
}
|
||||
|
||||
impl<T: AstNode> Parse<T> {
|
||||
/// Converts this parse result into a parse result for an untyped syntax tree.
|
||||
pub fn to_syntax(self) -> Parse<SyntaxNode> {
|
||||
Parse { green: self.green, errors: self.errors, _ty: PhantomData }
|
||||
}
|
||||
|
||||
/// Gets the parsed syntax tree as a typed ast node.
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// Panics if the root node cannot be casted into the typed ast node
|
||||
/// (e.g. if it's an `ERROR` node).
|
||||
pub fn tree(&self) -> T {
|
||||
T::cast(self.syntax_node()).unwrap()
|
||||
}
|
||||
|
||||
/// Converts from `Parse<T>` to [`Result<T, Vec<SyntaxError>>`].
|
||||
pub fn ok(self) -> Result<T, Vec<SyntaxError>> {
|
||||
match self.errors() {
|
||||
errors if !errors.is_empty() => Err(errors),
|
||||
|
@ -177,11 +185,7 @@ impl SourceFile {
|
|||
let root = SyntaxNode::new_root(green.clone());
|
||||
|
||||
assert_eq!(root.kind(), SyntaxKind::SOURCE_FILE);
|
||||
Parse {
|
||||
green,
|
||||
errors: if errors.is_empty() { None } else { Some(errors.into()) },
|
||||
_ty: PhantomData,
|
||||
}
|
||||
Parse::new(green, errors)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -290,12 +294,7 @@ impl ast::TokenTree {
|
|||
}
|
||||
|
||||
let (green, errors) = builder.finish_raw();
|
||||
|
||||
Parse {
|
||||
green,
|
||||
errors: if errors.is_empty() { None } else { Some(errors.into()) },
|
||||
_ty: PhantomData,
|
||||
}
|
||||
Parse::new(green, errors)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue