@@ -2,9 +2,7 @@ use std::iter;
2
2
3
3
use hir:: Semantics ;
4
4
use ide_db:: RootDatabase ;
5
- use syntax:: {
6
- ast, match_ast, ted, AstNode , NodeOrToken , SyntaxKind , SyntaxKind :: * , SyntaxNode , WalkEvent , T ,
7
- } ;
5
+ use syntax:: { ast, ted, AstNode , NodeOrToken , SyntaxKind , SyntaxKind :: * , SyntaxNode , WalkEvent , T } ;
8
6
9
7
use crate :: FilePosition ;
10
8
@@ -32,25 +30,21 @@ pub(crate) fn expand_macro(db: &RootDatabase, position: FilePosition) -> Option<
32
30
let mut expanded = None ;
33
31
let mut name = None ;
34
32
for node in tok. ancestors ( ) {
35
- match_ast ! {
36
- match node {
37
- ast:: MacroCall ( mac) => {
38
- name = Some ( mac. path( ) ?. segment( ) ?. name_ref( ) ?. to_string( ) ) ;
39
- expanded = expand_macro_recur( & sema, & mac) ;
40
- break ;
41
- } ,
42
- ast:: Item ( item) => {
43
- // FIXME: add the macro name
44
- // FIXME: make this recursive too
45
- name = Some ( "?" . to_string( ) ) ;
46
- expanded = sema. expand_attr_macro( & item) ;
47
- if expanded. is_some( ) {
48
- break ;
49
- }
50
- } ,
51
- _ => { }
33
+ if let Some ( item) = ast:: Item :: cast ( node. clone ( ) ) {
34
+ expanded = sema. expand_attr_macro ( & item) ;
35
+ if expanded. is_some ( ) {
36
+ // FIXME: add the macro name
37
+ // FIXME: make this recursive too
38
+ name = Some ( "?" . to_string ( ) ) ;
39
+ break ;
52
40
}
53
41
}
42
+
43
+ if let Some ( mac) = ast:: MacroCall :: cast ( node) {
44
+ name = Some ( mac. path ( ) ?. segment ( ) ?. name_ref ( ) ?. to_string ( ) ) ;
45
+ expanded = expand_macro_recur ( & sema, & mac) ;
46
+ break ;
47
+ }
54
48
}
55
49
56
50
// FIXME:
0 commit comments