Rollup merge of #100307 - nnethercote:fix-96847, r=cjgillot

Fix #96847

r? `@petrochenkov`
This commit is contained in:
Matthias Krüger 2022-08-11 22:53:05 +02:00 committed by GitHub
commit e221aafae6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 17 additions and 5 deletions

View File

@ -1536,15 +1536,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
hir::MatchSource::ForLoopDesugar,
));
let attrs: Vec<_> = e.attrs.iter().map(|a| self.lower_attr(a)).collect();
// This is effectively `{ let _result = ...; _result }`.
// The construct was introduced in #21984 and is necessary to make sure that
// temporaries in the `head` expression are dropped and do not leak to the
// surrounding scope of the `match` since the `match` is not a terminating scope.
//
// Also, add the attributes to the outer returned expr node.
self.expr_drop_temps_mut(for_span, match_expr, attrs.into())
self.expr_drop_temps_mut(for_span, match_expr, e.attrs.clone())
}
/// Desugar `ExprKind::Try` from: `<expr>?` into:

View File

@ -1 +0,0 @@
{"artifact":"$TEST_BUILD_DIR/json-multiple/libjson_multiple.rlib","emit":"link"}

View File

@ -1 +0,0 @@
{"artifact":"$TEST_BUILD_DIR/json-options/libjson_options.rlib","emit":"link"}

View File

@ -0,0 +1 @@
{"artifact":"$TEST_BUILD_DIR/json/json-multiple/libjson_multiple.rlib","emit":"link"}

View File

@ -0,0 +1 @@
{"artifact":"$TEST_BUILD_DIR/json/json-options/libjson_options.rlib","emit":"link"}

View File

@ -0,0 +1,14 @@
// run-pass
// Test that this doesn't abort during AST lowering. In #96847 it did abort
// because the attribute was being lowered twice.
#![feature(stmt_expr_attributes)]
#![feature(lang_items)]
fn main() {
for _ in [1,2,3] {
#![lang="foo"]
println!("foo");
}
}