@@ -1854,28 +1854,29 @@ impl<'a> LoweringContext<'a> {
1854
1854
P ( self . expr_call ( e. span , path, hir_vec ! [ sub_expr] ) )
1855
1855
} ;
1856
1856
1857
+ // #[allow(unreachable_code)]
1858
+ let attr = {
1859
+ // allow(unreachable_code)
1860
+ let allow = {
1861
+ let allow_ident = self . str_to_ident ( "allow" ) ;
1862
+ let uc_ident = self . str_to_ident ( "unreachable_code" ) ;
1863
+ let uc_meta_item = attr:: mk_spanned_word_item ( e. span , uc_ident) ;
1864
+ let uc_nested = NestedMetaItemKind :: MetaItem ( uc_meta_item) ;
1865
+ let uc_spanned = respan ( e. span , uc_nested) ;
1866
+ attr:: mk_spanned_list_item ( e. span , allow_ident, vec ! [ uc_spanned] )
1867
+ } ;
1868
+ attr:: mk_spanned_attr_outer ( e. span , attr:: mk_attr_id ( ) , allow)
1869
+ } ;
1870
+ let attrs = vec ! [ attr] ;
1871
+
1857
1872
// Ok(val) => { #[allow(unreachable_code)] val }
1858
1873
let ok_arm = {
1859
1874
let val_ident = self . str_to_ident ( "val" ) ;
1860
1875
let val_pat = self . pat_ident ( e. span , val_ident) ;
1861
- // #[allow(unreachable_code)]
1862
- let val_attr = {
1863
- // allow(unreachable_code)
1864
- let allow = {
1865
- let allow_ident = self . str_to_ident ( "allow" ) ;
1866
- let uc_ident = self . str_to_ident ( "unreachable_code" ) ;
1867
- let uc_meta_item = attr:: mk_spanned_word_item ( e. span , uc_ident) ;
1868
- let uc_nested = NestedMetaItemKind :: MetaItem ( uc_meta_item) ;
1869
- let uc_spanned = respan ( e. span , uc_nested) ;
1870
- attr:: mk_spanned_list_item ( e. span , allow_ident, vec ! [ uc_spanned] )
1871
- } ;
1872
- attr:: mk_spanned_attr_outer ( e. span , attr:: mk_attr_id ( ) , allow)
1873
- } ;
1874
- let attrs = From :: from ( vec ! [ val_attr] ) ;
1875
1876
let val_expr = P ( self . expr_ident_with_attrs ( e. span ,
1876
1877
val_ident,
1877
1878
val_pat. id ,
1878
- attrs) ) ;
1879
+ From :: from ( attrs. clone ( ) ) ) ) ;
1879
1880
let ok_pat = self . pat_ok ( e. span , val_pat) ;
1880
1881
1881
1882
self . arm ( hir_vec ! [ ok_pat] , val_expr)
@@ -1901,7 +1902,7 @@ impl<'a> LoweringContext<'a> {
1901
1902
1902
1903
let ret_expr = P ( self . expr ( e. span ,
1903
1904
hir:: Expr_ :: ExprRet ( Some ( from_err_expr) ) ,
1904
- ThinVec :: new ( ) ) ) ;
1905
+ From :: from ( attrs ) ) ) ;
1905
1906
1906
1907
let err_pat = self . pat_err ( e. span , err_local) ;
1907
1908
self . arm ( hir_vec ! [ err_pat] , ret_expr)
0 commit comments