@@ -11,10 +11,10 @@ use syntax::{
1111} ;
1212
1313use crate :: context:: {
14- CompletionContext , DotAccess , DotAccessKind , IdentContext , ItemListKind , LifetimeContext ,
15- LifetimeKind , NameContext , NameKind , NameRefContext , NameRefKind , ParamKind , PathCompletionCtx ,
16- PathKind , PatternContext , PatternRefutability , Qualified , QualifierCtx , TypeAscriptionTarget ,
17- TypeLocation , COMPLETION_MARKER ,
14+ AttrCtx , CompletionContext , DotAccess , DotAccessKind , ExprCtx , IdentContext , ItemListKind ,
15+ LifetimeContext , LifetimeKind , NameContext , NameKind , NameRefContext , NameRefKind , ParamKind ,
16+ PathCompletionCtx , PathKind , PatternContext , PatternRefutability , Qualified , QualifierCtx ,
17+ TypeAscriptionTarget , TypeLocation , COMPLETION_MARKER ,
1818} ;
1919
2020impl < ' a > CompletionContext < ' a > {
@@ -765,16 +765,18 @@ impl<'a> CompletionContext<'a> {
765765 let impl_ = fetch_immediate_impl ( sema, original_file, expr. syntax ( ) ) ;
766766
767767 PathKind :: Expr {
768- in_block_expr,
769- in_loop_body,
770- after_if_expr,
771- in_condition,
772- ref_expr_parent,
773- is_func_update,
774- innermost_ret_ty,
775- self_param,
776- incomplete_let,
777- impl_,
768+ expr_ctx : ExprCtx {
769+ in_block_expr,
770+ in_loop_body,
771+ after_if_expr,
772+ in_condition,
773+ ref_expr_parent,
774+ is_func_update,
775+ innermost_ret_ty,
776+ self_param,
777+ incomplete_let,
778+ impl_,
779+ } ,
778780 }
779781 } ;
780782 let make_path_kind_type = |ty : ast:: Type | {
@@ -858,8 +860,10 @@ impl<'a> CompletionContext<'a> {
858860 Some ( attached. kind( ) )
859861 } ;
860862 PathKind :: Attr {
861- kind,
862- annotated_item_kind,
863+ attr_ctx: AttrCtx {
864+ kind,
865+ annotated_item_kind,
866+ }
863867 }
864868 } ,
865869 ast:: Visibility ( it) => PathKind :: Vis { has_in_token: it. in_token( ) . is_some( ) } ,
@@ -914,7 +918,7 @@ impl<'a> CompletionContext<'a> {
914918 if path_ctx. is_trivial_path ( ) {
915919 // fetch the full expression that may have qualifiers attached to it
916920 let top_node = match path_ctx. kind {
917- PathKind :: Expr { in_block_expr : true , .. } => {
921+ PathKind :: Expr { expr_ctx : ExprCtx { in_block_expr : true , .. } } => {
918922 parent. ancestors ( ) . find ( |it| ast:: PathExpr :: can_cast ( it. kind ( ) ) ) . and_then ( |p| {
919923 let parent = p. parent ( ) ?;
920924 if ast:: StmtList :: can_cast ( parent. kind ( ) ) {
0 commit comments