File tree Expand file tree Collapse file tree 3 files changed +18
-19
lines changed Expand file tree Collapse file tree 3 files changed +18
-19
lines changed Original file line number Diff line number Diff line change @@ -257,6 +257,7 @@ pub trait ProcMacroExpander: fmt::Debug + Send + Sync + RefUnwindSafe {
257257 ) -> Result < Subtree , ProcMacroExpansionError > ;
258258}
259259
260+ #[ derive( Debug ) ]
260261pub enum ProcMacroExpansionError {
261262 Panic ( String ) ,
262263 /// Things like "proc macro server was killed by OOM".
Original file line number Diff line number Diff line change @@ -161,8 +161,8 @@ impl IdentClass {
161161 ast:: AwaitExpr ( await_expr) => OperatorClass :: classify_await( sema, & await_expr) . map( IdentClass :: Operator ) ,
162162 ast:: BinExpr ( bin_expr) => OperatorClass :: classify_bin( sema, & bin_expr) . map( IdentClass :: Operator ) ,
163163 ast:: IndexExpr ( index_expr) => OperatorClass :: classify_index( sema, & index_expr) . map( IdentClass :: Operator ) ,
164- ast:: PrefixExpr ( prefix_expr) => OperatorClass :: classify_prefix( sema, & prefix_expr) . map( IdentClass :: Operator ) ,
165- ast:: TryExpr ( try_expr) => OperatorClass :: classify_try( sema, & try_expr) . map( IdentClass :: Operator ) ,
164+ ast:: PrefixExpr ( prefix_expr) => OperatorClass :: classify_prefix( sema, & prefix_expr) . map( IdentClass :: Operator ) ,
165+ ast:: TryExpr ( try_expr) => OperatorClass :: classify_try( sema, & try_expr) . map( IdentClass :: Operator ) ,
166166 _ => None ,
167167 }
168168 }
Original file line number Diff line number Diff line change @@ -180,26 +180,24 @@ fn hover_simple(
180180 descended ( )
181181 . filter_map ( |token| {
182182 let node = token. parent ( ) ?;
183- let class = IdentClass :: classify_token ( sema, token) ?;
184- if let IdentClass :: Operator ( OperatorClass :: Await ( _) ) = class {
183+ match IdentClass :: classify_node ( sema, & node) ? {
185184 // It's better for us to fall back to the keyword hover here,
186185 // rendering poll is very confusing
187- return None ;
186+ IdentClass :: Operator ( OperatorClass :: Await ( _) ) => None ,
187+
188+ IdentClass :: NameRefClass ( NameRefClass :: ExternCrateShorthand {
189+ decl,
190+ ..
191+ } ) => Some ( vec ! [ ( Definition :: ExternCrateDecl ( decl) , node) ] ) ,
192+
193+ class => Some (
194+ class
195+ . definitions ( )
196+ . into_iter ( )
197+ . zip ( iter:: repeat ( node) )
198+ . collect :: < Vec < _ > > ( ) ,
199+ ) ,
188200 }
189- if let IdentClass :: NameRefClass ( NameRefClass :: ExternCrateShorthand {
190- decl,
191- ..
192- } ) = class
193- {
194- return Some ( vec ! [ ( Definition :: ExternCrateDecl ( decl) , node) ] ) ;
195- }
196- Some (
197- class
198- . definitions ( )
199- . into_iter ( )
200- . zip ( iter:: once ( node) . cycle ( ) )
201- . collect :: < Vec < _ > > ( ) ,
202- )
203201 } )
204202 . flatten ( )
205203 . unique_by ( |& ( def, _) | def)
You can’t perform that action at this time.
0 commit comments