@@ -66,27 +66,24 @@ pub(super) fn complete_expr_keyword(acc: &mut Completions, ctx: &CompletionConte
6666 add_keyword ( ctx, acc, "fn" , "fn $0() {}" )
6767 }
6868
69- if ( ctx. has_item_list_or_source_file_parent && !has_trait_or_impl_parent)
70- || ctx. block_expr_parent
71- {
69+ if ( ctx. has_item_list_or_source_file_parent ) || ctx. block_expr_parent {
7270 add_keyword ( ctx, acc, "trait" , "trait $0 {}" ) ;
7371 add_keyword ( ctx, acc, "impl" , "impl $0 {}" ) ;
7472 }
7573
7674 return ;
7775 }
78- if ctx. has_item_list_or_source_file_parent || ctx. block_expr_parent {
76+ if ctx. has_item_list_or_source_file_parent || has_trait_or_impl_parent || ctx. block_expr_parent
77+ {
7978 add_keyword ( ctx, acc, "fn" , "fn $0() {}" ) ;
8079 }
81- if ( ctx. has_item_list_or_source_file_parent && !has_trait_or_impl_parent)
82- || ctx. block_expr_parent
83- {
80+ if ( ctx. has_item_list_or_source_file_parent ) || ctx. block_expr_parent {
8481 add_keyword ( ctx, acc, "use" , "use " ) ;
8582 add_keyword ( ctx, acc, "impl" , "impl $0 {}" ) ;
8683 add_keyword ( ctx, acc, "trait" , "trait $0 {}" ) ;
8784 }
8885
89- if ctx. has_item_list_or_source_file_parent && !has_trait_or_impl_parent {
86+ if ctx. has_item_list_or_source_file_parent {
9087 add_keyword ( ctx, acc, "enum" , "enum $0 {}" ) ;
9188 add_keyword ( ctx, acc, "struct" , "struct $0" ) ;
9289 add_keyword ( ctx, acc, "union" , "union $0 {}" ) ;
@@ -108,29 +105,28 @@ pub(super) fn complete_expr_keyword(acc: &mut Completions, ctx: &CompletionConte
108105 add_keyword ( ctx, acc, "else" , "else {$0}" ) ;
109106 add_keyword ( ctx, acc, "else if" , "else if $0 {}" ) ;
110107 }
111- if ( ctx. has_item_list_or_source_file_parent && !has_trait_or_impl_parent)
112- || ctx. block_expr_parent
113- {
108+ if ( ctx. has_item_list_or_source_file_parent ) || ctx. block_expr_parent {
114109 add_keyword ( ctx, acc, "mod" , "mod $0 {}" ) ;
115110 }
116111 if ctx. bind_pat_parent || ctx. ref_pat_parent {
117112 add_keyword ( ctx, acc, "mut" , "mut " ) ;
118113 }
119- if ctx. has_item_list_or_source_file_parent || ctx. block_expr_parent {
114+ if ctx. has_item_list_or_source_file_parent || has_trait_or_impl_parent || ctx. block_expr_parent
115+ {
120116 add_keyword ( ctx, acc, "const" , "const " ) ;
121117 add_keyword ( ctx, acc, "type" , "type " ) ;
122118 }
123- if ( ctx. has_item_list_or_source_file_parent && !has_trait_or_impl_parent)
124- || ctx. block_expr_parent
125- {
119+ if ( ctx. has_item_list_or_source_file_parent ) || ctx. block_expr_parent {
126120 add_keyword ( ctx, acc, "static" , "static " ) ;
127121 } ;
128- if ( ctx. has_item_list_or_source_file_parent && !has_trait_or_impl_parent)
129- || ctx. block_expr_parent
130- {
122+ if ( ctx. has_item_list_or_source_file_parent ) || ctx. block_expr_parent {
131123 add_keyword ( ctx, acc, "extern" , "extern " ) ;
132124 }
133- if ctx. has_item_list_or_source_file_parent || ctx. block_expr_parent || ctx. is_match_arm {
125+ if ctx. has_item_list_or_source_file_parent
126+ || has_trait_or_impl_parent
127+ || ctx. block_expr_parent
128+ || ctx. is_match_arm
129+ {
134130 add_keyword ( ctx, acc, "unsafe" , "unsafe " ) ;
135131 }
136132 if ctx. in_loop_body {
@@ -142,7 +138,7 @@ pub(super) fn complete_expr_keyword(acc: &mut Completions, ctx: &CompletionConte
142138 add_keyword ( ctx, acc, "break" , "break" ) ;
143139 }
144140 }
145- if ctx. has_item_list_or_source_file_parent && ! ctx. has_trait_parent {
141+ if ctx. has_item_list_or_source_file_parent || ctx. has_impl_parent {
146142 add_keyword ( ctx, acc, "pub" , "pub " )
147143 }
148144
0 commit comments