@@ -596,7 +596,17 @@ fn find_deprecation_generic<'a, I>(sess: &ParseSess,
596
596
* item = Some ( v) ;
597
597
true
598
598
} else {
599
- span_err ! ( diagnostic, meta. span, E0551 , "incorrect meta item" ) ;
599
+ if let Some ( lit) = meta. name_value_literal ( ) {
600
+ handle_errors (
601
+ sess,
602
+ lit. span ,
603
+ AttrError :: UnsupportedLiteral ,
604
+ lit. node . is_bytestr ( ) ,
605
+ ) ;
606
+ } else {
607
+ span_err ! ( diagnostic, meta. span, E0551 , "incorrect meta item" ) ;
608
+ }
609
+
600
610
false
601
611
}
602
612
} ;
@@ -622,7 +632,7 @@ fn find_deprecation_generic<'a, I>(sess: &ParseSess,
622
632
}
623
633
NestedMetaItemKind :: Literal ( lit) => {
624
634
let is_bytestr = lit. node . is_bytestr ( ) ;
625
- handle_errors ( sess, meta . span , AttrError :: UnsupportedLiteral , is_bytestr) ;
635
+ handle_errors ( sess, lit . span , AttrError :: UnsupportedLiteral , is_bytestr) ;
626
636
continue ' outer
627
637
}
628
638
}
@@ -682,7 +692,12 @@ pub fn find_repr_attrs(sess: &ParseSess, attr: &Attribute) -> Vec<ReprAttr> {
682
692
mark_used ( attr) ;
683
693
for item in items {
684
694
if !item. is_meta_item ( ) {
685
- handle_errors ( sess, item. span , AttrError :: UnsupportedLiteral , false ) ;
695
+ let ( span, is_bytestr) = if let Some ( lit) = item. literal ( ) {
696
+ ( lit. span , lit. node . is_bytestr ( ) )
697
+ } else {
698
+ ( item. span , false )
699
+ } ;
700
+ handle_errors ( sess, span, AttrError :: UnsupportedLiteral , is_bytestr) ;
686
701
continue
687
702
}
688
703
0 commit comments