mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
Merge #4396
4396: Improve panic message for ast_from_text r=jonas-schievink a=edwin0cheng Related: #4368 Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
This commit is contained in:
commit
bfb40a698d
1 changed files with 6 additions and 1 deletions
|
@ -300,7 +300,12 @@ pub fn add_pub_crate_modifier(fn_def: ast::FnDef) -> ast::FnDef {
|
||||||
|
|
||||||
fn ast_from_text<N: AstNode>(text: &str) -> N {
|
fn ast_from_text<N: AstNode>(text: &str) -> N {
|
||||||
let parse = SourceFile::parse(text);
|
let parse = SourceFile::parse(text);
|
||||||
let node = parse.tree().syntax().descendants().find_map(N::cast).unwrap();
|
let node = match parse.tree().syntax().descendants().find_map(N::cast) {
|
||||||
|
Some(it) => it,
|
||||||
|
None => {
|
||||||
|
panic!("Failed to make ast node `{}` from text {}", std::any::type_name::<N>(), text)
|
||||||
|
}
|
||||||
|
};
|
||||||
let node = node.syntax().clone();
|
let node = node.syntax().clone();
|
||||||
let node = unroot(node);
|
let node = unroot(node);
|
||||||
let node = N::cast(node).unwrap();
|
let node = N::cast(node).unwrap();
|
||||||
|
|
Loading…
Reference in a new issue