Skip to content

[beta] Backport unstabilization of extended varargs abi support #136934

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
c09561c
update version placeholders
pietroalbini Jan 6, 2025
3bc7fca
update channel to beta
pietroalbini Jan 6, 2025
031ad72
Pass objcopy args for stripping on OSX
Noratrieb Jan 2, 2025
3d6fdff
rustfmt: drop nightly-gating of the `--style-edition` flag registration
jieyouxu Jan 7, 2025
fc252e9
Revert "fix missing rustfmt for apple darwin"
pietroalbini Jan 8, 2025
b2ab974
Revert "fix missing rustfmt and clippy for msi"
pietroalbini Jan 8, 2025
e30eeff
Auto merge of #135163 - pietroalbini:pa-beta, r=pietroalbini
bors Jan 8, 2025
9e57baf
bump stage0 to 1.84.0
cuviper Jan 10, 2025
4475508
run borrowck tests on BIDs and emit tail-expr-drop-order lints for
dingxiangfei2009 Dec 4, 2024
e398428
apply suggestions on fn name
dingxiangfei2009 Dec 19, 2024
61c0bcf
remove an extraneous comment
dingxiangfei2009 Dec 19, 2024
273873a
Don't create cycles by normalizing opaques defined in the body we're …
compiler-errors Jan 5, 2025
1b8413e
Don't do AccessDepth::Drop for types with no drop impl
compiler-errors Jan 5, 2025
18d3153
Try to explain borrow for tail expr temporary drop order change in 2024
compiler-errors Jan 6, 2025
ce4e43f
Bless test UI changes in backport
cuviper Jan 11, 2025
fe9b975
Auto merge of #135351 - cuviper:beta-next, r=cuviper
bors Jan 11, 2025
402eeff
[beta] TRPL: incorporate all backward-compatible Edition changes
chriskrycho Jan 14, 2025
f836dc2
Mark rustbook as an external tool
ehuss Jan 13, 2025
5904ea4
Backport rust-lang/rust-analyzer#18760: internal: Workaround salsa cy…
Veykril Jan 16, 2025
8a7dc21
do not in-place-iterate over flatmap/flatten
the8472 Jan 4, 2025
ae37d1c
add regression test for unsound Flatten/FlatMap specialization
the8472 Jan 4, 2025
e126c8d
Make sure to mark IMPL_TRAIT_REDUNDANT_CAPTURES as Allow in edition 2024
compiler-errors Jan 13, 2025
1c85981
Update to LLVM 19.1.7
nikic Jan 14, 2025
d0d224d
Auto merge of #135508 - chriskrycho:trpl-edition-updates, r=ehuss
bors Jan 17, 2025
752fecf
Auto merge of #135609 - cuviper:beta-next, r=cuviper
bors Jan 17, 2025
4416507
Auto merge of #135575 - Veykril:push-ynurtulswkpo, r=Mark-Simulacrum
bors Jan 20, 2025
a41d236
Always force non-trimming of path in `unreachable_patterns` lint
estebank Jan 9, 2025
eb03c32
Add logic to override profile for non git sources
tanvincible Jan 13, 2025
f379706
resolve symlinks of LLVM tool binaries before copying them
onur-ozkan Jan 16, 2025
953a1a0
avoid running the overlap check twice
lcnr Jan 15, 2025
e35db42
add cache to `AmbiguityCausesVisitor`
lcnr Jan 17, 2025
f6aed49
add test
lcnr Jan 17, 2025
4595e11
When LLVM's location discriminator value limit is exceeded, emit loca…
khuey Jan 17, 2025
e92addf
make it possible to use ci-rustc on tarball sources
onur-ozkan Jan 19, 2025
5f5e70b
Remove test panic from File::open
ChrisDenton Jan 21, 2025
f05d305
Only assert the `Parser` size on specific arches
cuviper Jan 22, 2025
ee2ff9d
[beta] TRPL: more backward-compatible Edition changes
chriskrycho Jan 21, 2025
130f951
[beta] TRPL: integrate edits to Chapter 17
chriskrycho Jan 21, 2025
14445aa
Auto merge of #136017 - cuviper:beta-next, r=cuviper
bors Jan 26, 2025
ee94112
Rollup merge of #135852 - lukas-code:asyncfn-prelude-core, r=compiler…
matthiaskrgr Jan 30, 2025
2fa9d47
Disable some incorrect rust-analyzer diagnostics on beta
Veykril Jan 29, 2025
fdc22dc
Rollup merge of #136312 - compiler-errors:overflow_delimited_expr-202…
jhpratt Jan 31, 2025
b5a02ff
Update edition-guide
ehuss Feb 1, 2025
cfe3de2
Fix core AsyncFn stability attribute
ehuss Feb 1, 2025
0277061
Auto merge of #136391 - ehuss:rust-1.85-beta-backports, r=ehuss
bors Feb 1, 2025
887965d
Ensure that we don't try to access fields on a non-struct pattern typ…
estebank Jan 7, 2025
e98d524
Add check for missing fields in enum variant pattern
estebank Jan 8, 2025
f264675
modify test to side-step platform-dependent stderr output
estebank Jan 8, 2025
13c3f9b
Do not include GCC source code in source tarballs
Kobzol Jan 17, 2025
7302b30
Revert "Auto merge of #134330 - scottmcm:no-more-rvalue-len, r=matthe…
lqd Jan 18, 2025
c6063d4
Revert "Rollup merge of #134371 - scottmcm:fix-134352, r=oli-obk"
lqd Jan 18, 2025
197b416
Revert "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadat…
lqd Jan 18, 2025
9405480
add tests for issue 135671
lqd Jan 18, 2025
741fa9e
ensure sufficient stack in tail call check
lqd Jan 31, 2025
01283c4
ensure sufficient stack in unsafety check
lqd Jan 31, 2025
bf24cad
Enable kernel sanitizers for aarch64-unknown-none-softfloat
workingjubilee Jan 22, 2025
3821385
Auto merge of #136650 - cuviper:beta-next, r=cuviper
bors Feb 6, 2025
74c0e61
Revert "Stabilize `extended_varargs_abi_support`"
workingjubilee Feb 12, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Don't create cycles by normalizing opaques defined in the body we're …
…checking

(cherry picked from commit 197f6d8)
  • Loading branch information
compiler-errors authored and cuviper committed Jan 10, 2025
commit 273873a671380d5394a6c93157be34825e6d8c5f
Original file line number Diff line number Diff line change
Expand Up @@ -351,14 +351,19 @@ pub(crate) fn run_lint<'tcx>(tcx: TyCtxt<'tcx>, def_id: LocalDefId, body: &Body<
{
return;
}

// FIXME(typing_env): This should be able to reveal the opaques local to the
// body using the typeck results.
let typing_env = ty::TypingEnv::non_body_analysis(tcx, def_id);

// ## About BIDs in blocks ##
// Track the set of blocks that contain a backwards-incompatible drop (BID)
// and, for each block, the vector of locations.
//
// We group them per-block because they tend to scheduled in the same drop ladder block.
let mut bid_per_block = IndexMap::default();
let mut bid_places = UnordSet::new();
let typing_env = ty::TypingEnv::post_analysis(tcx, def_id);

let mut ty_dropped_components = UnordMap::default();
for (block, data) in body.basic_blocks.iter_enumerated() {
for (statement_index, stmt) in data.statements.iter().enumerate() {
Expand Down
1 change: 0 additions & 1 deletion tests/ui/drop/lint-tail-expr-drop-order.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ impl Drop for LoudDropper {
//~| NOTE: `#1` invokes this custom destructor
//~| NOTE: `x` invokes this custom destructor
//~| NOTE: `#1` invokes this custom destructor
//~| NOTE: `future` invokes this custom destructor
//~| NOTE: `_x` invokes this custom destructor
//~| NOTE: `#1` invokes this custom destructor
fn drop(&mut self) {
Expand Down
27 changes: 10 additions & 17 deletions tests/ui/drop/lint-tail-expr-drop-order.stderr
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
error: relative drop order changing in Rust 2024
--> $DIR/lint-tail-expr-drop-order.rs:41:15
--> $DIR/lint-tail-expr-drop-order.rs:40:15
|
LL | let x = LoudDropper;
| -
Expand Down Expand Up @@ -40,7 +40,7 @@ LL | #![deny(tail_expr_drop_order)]
| ^^^^^^^^^^^^^^^^^^^^

error: relative drop order changing in Rust 2024
--> $DIR/lint-tail-expr-drop-order.rs:66:19
--> $DIR/lint-tail-expr-drop-order.rs:65:19
|
LL | let x = LoudDropper;
| -
Expand Down Expand Up @@ -76,7 +76,7 @@ LL | | }
= note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

error: relative drop order changing in Rust 2024
--> $DIR/lint-tail-expr-drop-order.rs:93:7
--> $DIR/lint-tail-expr-drop-order.rs:92:7
|
LL | let x = LoudDropper;
| -
Expand Down Expand Up @@ -112,7 +112,7 @@ LL | | }
= note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

error: relative drop order changing in Rust 2024
--> $DIR/lint-tail-expr-drop-order.rs:146:5
--> $DIR/lint-tail-expr-drop-order.rs:145:5
|
LL | let future = f();
| ------
Expand All @@ -136,19 +136,12 @@ note: `#1` invokes this custom destructor
|
LL | / impl Drop for LoudDropper {
... |
LL | | }
| |_^
note: `future` invokes this custom destructor
--> $DIR/lint-tail-expr-drop-order.rs:10:1
|
LL | / impl Drop for LoudDropper {
... |
LL | | }
| |_^
= note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

error: relative drop order changing in Rust 2024
--> $DIR/lint-tail-expr-drop-order.rs:163:14
--> $DIR/lint-tail-expr-drop-order.rs:162:14
|
LL | let x = T::default();
| -
Expand All @@ -170,7 +163,7 @@ LL | }
= note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

error: relative drop order changing in Rust 2024
--> $DIR/lint-tail-expr-drop-order.rs:177:5
--> $DIR/lint-tail-expr-drop-order.rs:176:5
|
LL | let x: Result<LoudDropper, ()> = Ok(LoudDropper);
| -
Expand Down Expand Up @@ -206,7 +199,7 @@ LL | | }
= note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

error: relative drop order changing in Rust 2024
--> $DIR/lint-tail-expr-drop-order.rs:221:5
--> $DIR/lint-tail-expr-drop-order.rs:220:5
|
LL | let x = LoudDropper2;
| -
Expand All @@ -226,7 +219,7 @@ LL | }
= warning: this changes meaning in Rust 2024
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
--> $DIR/lint-tail-expr-drop-order.rs:194:5
--> $DIR/lint-tail-expr-drop-order.rs:193:5
|
LL | / impl Drop for LoudDropper3 {
LL | |
Expand All @@ -236,7 +229,7 @@ LL | | }
LL | | }
| |_____^
note: `x` invokes this custom destructor
--> $DIR/lint-tail-expr-drop-order.rs:206:5
--> $DIR/lint-tail-expr-drop-order.rs:205:5
|
LL | / impl Drop for LoudDropper2 {
LL | |
Expand All @@ -248,7 +241,7 @@ LL | | }
= note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

error: relative drop order changing in Rust 2024
--> $DIR/lint-tail-expr-drop-order.rs:234:13
--> $DIR/lint-tail-expr-drop-order.rs:233:13
|
LL | LoudDropper.get()
| ^^^^^^^^^^^
Expand Down
4 changes: 4 additions & 0 deletions tests/ui/drop/tail_expr_drop_order-on-coroutine-unwind.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@ error: relative drop order changing in Rust 2024
LL | match func().await {
| ^^^^^^^-----
| | |
| | this value will be stored in a temporary; let us call it `#3`
| | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
| | this value will be stored in a temporary; let us call it `#1`
| | `#1` will be dropped later as of Edition 2024
| this value will be stored in a temporary; let us call it `#2`
| up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
| `__awaitee` calls a custom destructor
| `__awaitee` will be dropped later as of Edition 2024
...
LL | Err(e) => {}
| -
Expand Down
13 changes: 13 additions & 0 deletions tests/ui/drop/tail_expr_drop_order-on-recursive-boxed-fut.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//@ edition: 2021
//@ check-pass

// Make sure we don't cycle error when normalizing types for tail expr drop order lint.

#![deny(tail_expr_drop_order)]

async fn test() -> Result<(), Box<dyn std::error::Error>> {
Box::pin(test()).await?;
Ok(())
}

fn main() {}