Skip to content

Commit cf830ae

Browse files
committed
Move pub function first
1 parent 84effda commit cf830ae

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

crates/ra_hir_expand/src/eager.rs

+24-24
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,30 @@ use ra_parser::FragmentKind;
2929
use ra_syntax::{algo::replace_descendants, SyntaxElement, SyntaxNode};
3030
use std::{collections::HashMap, sync::Arc};
3131

32+
pub fn expand_eager_macro(
33+
db: &impl AstDatabase,
34+
macro_call: InFile<ast::MacroCall>,
35+
def: MacroDefId,
36+
resolver: &dyn Fn(ast::Path) -> Option<MacroDefId>,
37+
) -> Option<EagerMacroId> {
38+
let args = macro_call.value.token_tree()?;
39+
let parsed_args = mbe::ast_to_token_tree(&args)?.0;
40+
let parsed_args = mbe::token_tree_to_syntax_node(&parsed_args, FragmentKind::Expr).ok()?.0;
41+
let result = eager_macro_recur(db, macro_call.with_value(parsed_args.syntax_node()), resolver)?;
42+
43+
let subtree = to_subtree(&result)?;
44+
45+
if let MacroDefKind::BuiltInEager(eager) = def.kind {
46+
let (subtree, fragment) = eager.expand(&subtree).ok()?;
47+
let eager =
48+
EagerCallLoc { def, fragment, subtree: Arc::new(subtree), file_id: macro_call.file_id };
49+
50+
Some(db.intern_eager_expansion(eager))
51+
} else {
52+
None
53+
}
54+
}
55+
3256
fn to_subtree(node: &SyntaxNode) -> Option<tt::Subtree> {
3357
let mut subtree = mbe::syntax_node_to_token_tree(node)?.0;
3458
subtree.delimiter = None;
@@ -86,27 +110,3 @@ fn eager_macro_recur(
86110

87111
Some(original)
88112
}
89-
90-
pub fn expand_eager_macro(
91-
db: &impl AstDatabase,
92-
macro_call: InFile<ast::MacroCall>,
93-
def: MacroDefId,
94-
resolver: &dyn Fn(ast::Path) -> Option<MacroDefId>,
95-
) -> Option<EagerMacroId> {
96-
let args = macro_call.value.token_tree()?;
97-
let parsed_args = mbe::ast_to_token_tree(&args)?.0;
98-
let parsed_args = mbe::token_tree_to_syntax_node(&parsed_args, FragmentKind::Expr).ok()?.0;
99-
let result = eager_macro_recur(db, macro_call.with_value(parsed_args.syntax_node()), resolver)?;
100-
101-
let subtree = to_subtree(&result)?;
102-
103-
if let MacroDefKind::BuiltInEager(eager) = def.kind {
104-
let (subtree, fragment) = eager.expand(&subtree).ok()?;
105-
let eager =
106-
EagerCallLoc { def, fragment, subtree: Arc::new(subtree), file_id: macro_call.file_id };
107-
108-
Some(db.intern_eager_expansion(eager))
109-
} else {
110-
None
111-
}
112-
}

0 commit comments

Comments
 (0)