File tree 1 file changed +25
-5
lines changed
crates/ide/src/inlay_hints
1 file changed +25
-5
lines changed Original file line number Diff line number Diff line change @@ -19,12 +19,15 @@ pub(super) fn enum_hints(
19
19
_: FileId ,
20
20
enum_ : ast:: Enum ,
21
21
) -> Option < ( ) > {
22
- let disabled = match config. discriminant_hints {
23
- DiscriminantHints :: Always => false ,
24
- DiscriminantHints :: Fieldless => sema. to_def ( & enum_) ?. is_data_carrying ( sema. db ) ,
25
- DiscriminantHints :: Never => true ,
22
+ let enabled = match config. discriminant_hints {
23
+ DiscriminantHints :: Always => true ,
24
+ DiscriminantHints :: Fieldless => {
25
+ !sema. to_def ( & enum_) ?. is_data_carrying ( sema. db )
26
+ || enum_. variant_list ( ) ?. variants ( ) . any ( |v| v. expr ( ) . is_some ( ) )
27
+ }
28
+ DiscriminantHints :: Never => false ,
26
29
} ;
27
- if disabled {
30
+ if !enabled {
28
31
return None ;
29
32
}
30
33
for variant in enum_. variant_list ( ) ?. variants ( ) {
@@ -161,8 +164,25 @@ enum Enum {
161
164
Variant1,
162
165
Variant2 {},
163
166
Variant3,
167
+ Variant5,
168
+ Variant6,
169
+ }
170
+ "# ,
171
+ ) ;
172
+ check_discriminants_fieldless (
173
+ r#"
174
+ enum Enum {
175
+ Variant(),
176
+ //^^^^^^^^^0
177
+ Variant1,
178
+ //^^^^^^^^1
179
+ Variant2 {},
180
+ //^^^^^^^^^^^2
181
+ Variant3,
182
+ //^^^^^^^^3
164
183
Variant5 = 5,
165
184
Variant6,
185
+ //^^^^^^^^6
166
186
}
167
187
"# ,
168
188
) ;
You can’t perform that action at this time.
0 commit comments