File tree Expand file tree Collapse file tree 1 file changed +25
-5
lines changed
crates/ide/src/inlay_hints Expand file tree Collapse file tree 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(
1919 _: FileId ,
2020 enum_ : ast:: Enum ,
2121) -> 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 ,
2629 } ;
27- if disabled {
30+ if !enabled {
2831 return None ;
2932 }
3033 for variant in enum_. variant_list ( ) ?. variants ( ) {
@@ -161,8 +164,25 @@ enum Enum {
161164 Variant1,
162165 Variant2 {},
163166 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
164183 Variant5 = 5,
165184 Variant6,
185+ //^^^^^^^^6
166186}
167187"# ,
168188 ) ;
You can’t perform that action at this time.
0 commit comments