Commit Graph

267844 Commits

Author SHA1 Message Date
Jubilee 3f88d6a83a Rollup merge of #131359 - practicalrs:fix_used_underscore_binding, r=jieyouxu
Fix used_underscore_binding in rustc_serialize

Hi,

This PR fixes the following clippy warnings in rustc_serialize

```
warning: used underscore-prefixed binding
   --> compiler/rustc_serialize/src/opaque.rs:443:27
    |
443 |         debug_assert_eq!((_end_pos - _start_pos), IntEncodedWithFixedSize::ENCODED_SIZE);
    |                           ^^^^^^^^
    |
note: binding is defined here
   --> compiler/rustc_serialize/src/opaque.rs:442:13
    |
442 |         let _end_pos = e.position();
    |             ^^^^^^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#used_underscore_binding
    = note: requested on the command line with `-W clippy::used-underscore-binding`

warning: used underscore-prefixed binding
   --> compiler/rustc_serialize/src/opaque.rs:443:38
    |
443 |         debug_assert_eq!((_end_pos - _start_pos), IntEncodedWithFixedSize::ENCODED_SIZE);
    |                                      ^^^^^^^^^^
    |
note: binding is defined here
   --> compiler/rustc_serialize/src/opaque.rs:440:13
    |
440 |         let _start_pos = e.position();
    |             ^^^^^^^^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#used_underscore_binding
```

Best regards,
Michal
2024-10-07 11:10:55 -07:00
Jubilee f88bfa34e1 Rollup merge of #131351 - jieyouxu:yeet-the-valgrind, r=Kobzol
Remove valgrind test suite and support from compiletest, bootstrap and opt-dist

The `run-pass-valgrind` test suite is not exercised in CI, and as far as I'm aware nobody runs it (asked in https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Are.20the.20valgrind.20tests.20even.20used.20by.20anyone.3F). What's remaining of valgrind support in compiletest isn't even properly hooked up with bootstrap.

The existing valgrind logic in compiletest is also straight up questionable, i.e.

https://github.com/rust-lang/rust/blob/1b3b8e7b0265162853c650ead09905bc3cdaeae9/src/tools/compiletest/src/runtest/valgrind.rs#L7-L12

It just runs valgrind tests as `rpass` if no valgrind path is provided to compiletest from bootstrap -- but bootstrap doesn't even pass a valgrind path to compiletest in the first place, so this always ran as `rpass` tests. So what is this even testing?

So if it's not testing anything, let's delete it.

Closes #44816 by deleting the test suite :3

<img src="https://github.com/user-attachments/assets/99525bf7-e85b-40ba-9281-e4e1e275c4e8" width=300 />
2024-10-07 11:10:54 -07:00
Jubilee 9c4732a77d Rollup merge of #131225 - nnethercote:rustc_borrowck-mm, r=lqd
`rustc_borrowck` memory management tweaks

Minor cleanups in `rustc_borrowck` relating to memory management.

r? `@lqd`
2024-10-07 11:10:54 -07:00
Jubilee 31fbf67ce3 Rollup merge of #130899 - bjorn3:wasi_bootstrap_fixes, r=davidtwco
Couple of changes to make it easier to compile rustc for wasm

This is a subset of the patches I have on my rust fork to compile rustc for wasm32-wasip1.
2024-10-07 11:10:53 -07:00
Jubilee 8cd9d954c7 Rollup merge of #130479 - onur-ozkan:llvm-bitcode-linker-multiple-candidates, r=Kobzol
skip in-tree compiler build for llvm-bitcode-linker if ci-rustc is on

Similar to https://github.com/rust-lang/rust/issues/108767, resolves the `multiple candidates` problem for ci-rustc.

See https://github.com/rust-lang/rust/pull/122709#issuecomment-2355436227 for more context.

Blocker for #122709.
2024-10-07 11:10:52 -07:00
Jubilee bd2e7ee976 Rollup merge of #128721 - Brezak:pointee-in-strange-places, r=pnkfelix
Don't allow the `#[pointee]` attribute where it doesn't belong

Error if the `#[pointee]` attribute is applied to anything but generic type parameters.

Closes #128485
Related to #123430
2024-10-07 11:10:52 -07:00
Michal Piotrowski 4085b48dfd Fix used_underscore_binding in rustc_serialize 2024-10-07 15:02:45 +02:00
bors 7caad69253 Auto merge of #131354 - matthiaskrgr:rollup-hprnng2, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #131331 (Revert "warn_old_master_branch" check)
 - #131344 (Avoid `&Lrc<T>` in various places)
 - #131346 (Restrict `ignore-mode-*` directives)
 - #131353 (Add documentation for `runtest::check_rustdoc_test_option` method)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-07 11:30:33 +00:00
Matthias Krüger fd2278d017 Rollup merge of #131353 - GuillaumeGomez:check_rustdoc_test_option, r=jieyouxu
Add documentation for `runtest::check_rustdoc_test_option` method

r? `@jieyouxu`
2024-10-07 12:23:56 +02:00
Matthias Krüger 7d7b43c39a Rollup merge of #131346 - jieyouxu:prune-invalid-directives, r=Zalathar
Restrict `ignore-mode-*` directives

This is only used by coverage test suites where the same sources get run under different coverage modes. Restrict `ignore-mode-<coverage_mode>` to only coverage modes.
2024-10-07 12:23:55 +02:00
Matthias Krüger df61a0b1b2 Rollup merge of #131344 - nnethercote:ref-Lrc, r=compiler-errors
Avoid `&Lrc<T>` in various places

Seeing `&Lrc<T>` is a bit suspicious, and `&T` or `Lrc<T>` is often better.

r? `@oli-obk`
2024-10-07 12:23:54 +02:00
Matthias Krüger 3a5a816190 Rollup merge of #131331 - onur-ozkan:131296, r=Kobzol
Revert "warn_old_master_branch" check

See https://github.com/rust-lang/rust/issues/131296#issuecomment-2395486918.

Reverts https://github.com/rust-lang/rust/pull/130121 and https://github.com/rust-lang/rust/pull/129584.

Fixes https://github.com/rust-lang/rust/issues/131296 and https://github.com/rust-lang/rust/issues/131324.
2024-10-07 12:23:54 +02:00
Guillaume Gomez dde78bd946 Add documentation for runtest::check_rustdoc_test_option method 2024-10-07 12:09:28 +02:00
bors 0b16baa570 Auto merge of #131235 - codemountains:rename-nestedmetaitem-to-metaitemlnner, r=nnethercote
Rename `NestedMetaItem` to `MetaItemInner`

Fixes #131087

r? `@nnethercote`
2024-10-07 08:59:55 +00:00
许杰友 Jieyou Xu (Joe) fa3c25e112 Delete the run-pass-valgrind test suite 2024-10-07 08:02:30 +00:00
许杰友 Jieyou Xu (Joe) f1e408a8de Remove valgrind test suite from opt-dist 2024-10-07 07:54:57 +00:00
许杰友 Jieyou Xu (Joe) de588a6e60 Remove valgrind test suite support from bootstrap 2024-10-07 07:53:48 +00:00
许杰友 Jieyou Xu (Joe) a961be9f13 Remove valgrind test suite and support from compiletest 2024-10-07 07:53:42 +00:00
codemountains fc64ff7ec2 Rename nested_meta to meta_item_inner 2024-10-07 15:22:03 +09:00
bors 690332a251 Auto merge of #131345 - Zalathar:rollup-scdxuou, r=Zalathar
Rollup of 3 pull requests

Successful merges:

 - #128399 (liballoc: introduce String, Vec const-slicing)
 - #131308 (enable f16 and f128 on windows-gnullvm targets)
 - #131325 (coverage: Multiple small tweaks to counter creation)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-07 06:01:07 +00:00
许杰友 Jieyou Xu (Joe) 64efbe2b53 Prune invalid ignore-mode-* directives
These are only valid for coverage test modes.
2024-10-07 05:42:43 +00:00
Stuart Cook 99e12442da Rollup merge of #131325 - Zalathar:tweak-counters, r=jieyouxu
coverage: Multiple small tweaks to counter creation

I've been experimenting with some larger changes to how coverage counters are assigned to parts of the control-flow graph, and while none of that is ready yet, along the way I've repeatedly found myself wanting these smaller tweaks as a base.

There are no changes to compiler output.
2024-10-07 15:37:07 +11:00
Stuart Cook 5c1c49a0c4 Rollup merge of #131308 - mati865:gnullvm-f16-f128, r=tgross35
enable f16 and f128 on windows-gnullvm targets

Continuation of https://github.com/rust-lang/rust/pull/130959
2024-10-07 15:37:07 +11:00
Stuart Cook dd4f062b07 Rollup merge of #128399 - mammothbane:master, r=Amanieu,tgross35
liballoc: introduce String, Vec const-slicing

This change `const`-qualifies many methods on `Vec` and `String`, notably `as_slice`, `as_str`, `len`. These changes are made behind the unstable feature flag `const_vec_string_slice`.

## Motivation
This is to support simultaneous variance over ownership and constness. I have an enum type that may contain either `String` or `&str`, and I want to produce a `&str` from it in a possibly-`const` context.

```rust
enum StrOrString<'s> {
    Str(&'s str),
    String(String),
}

impl<'s> StrOrString<'s> {
    const fn as_str(&self) -> &str {
        match self {
             // In a const-context, I really only expect to see this variant, but I can't switch the implementation
             // in some mode like #[cfg(const)] -- there has to be a single body
             Self::Str(s) => s,

             // so this is a problem, since it's not `const`
             Self::String(s) => s.as_str(),
        }
    }
}
```

Currently `String` and `Vec` don't support this, but can without functional changes. Similar logic applies for `len`, `capacity`, `is_empty`.

## Changes

The essential thing enabling this change is that `Unique::as_ptr` is `const`. This lets us convert `RawVec::ptr` -> `Vec::as_ptr` -> `Vec::as_slice` -> `String::as_str`.

I had to move the `Deref` implementations into `as_{str,slice}` because `Deref` isn't `#[const_trait]`, but I would expect this change to be invisible up to inlining. I moved the `DerefMut` implementations as well for uniformity.
2024-10-07 15:37:06 +11:00
bors 8841a3dadd Auto merge of #131226 - nnethercote:rustc_infer-cleanups, r=lcnr
`rustc_infer` cleanups

Various small improvements I found while reading over this code.

r? `@lcnr`
2024-10-07 03:22:04 +00:00
Nicholas Nethercote 4547c0a990 Avoid another &Lrc<..> in a return value. 2024-10-07 13:59:50 +11:00
Nicholas Nethercote 2123509351 Remove an unnecessary &Lrc<_> local variable. 2024-10-07 13:58:29 +11:00
Nicholas Nethercote 860cbccad9 Convert a &Lrc<T> argument to Lrc<T>.
It's slightly simpler.
2024-10-07 13:58:10 +11:00
Nicholas Nethercote 731469fee5 Convert Option<&Lrc<T>> return types to Option<&T>.
It's simpler and more concise.
2024-10-07 13:56:29 +11:00
bors a964a92277 Auto merge of #131068 - RalfJung:immediate-offset-sanity-check, r=nnethercote
Don't use Immediate::offset to transmute pointers to integers

This applies the relatively new `assert_matches_abi` check in the `offset` operation on immediates, which makes sure that if offsets are used to alter the layout (which is possible because the field layout is arbitrarily picked by the caller), this is not done in a way that breaks the invariant of the `Immediate` type.

This leads to ICEs in a GVN mir-opt test, so the second commit fixes GVN.

Fixes https://github.com/rust-lang/rust/issues/131064.
2024-10-07 00:45:41 +00:00
Nathan Perry d793766a61 liballoc: introduce String, Vec const-slicing
This change `const`-qualifies many methods on Vec and String, notably
`as_slice`, `as_str`, `len`. These changes are made behind the unstable
feature flag `const_vec_string_slice` with the following tracking issue:

https://github.com/rust-lang/rust/issues/129041
2024-10-06 19:58:35 -04:00
Nicholas Nethercote 3fdcde76d9 Remove out-of-date comment. 2024-10-07 09:50:51 +11:00
Nicholas Nethercote afbff05c84 Move a use statement so it's with the other use statements. 2024-10-07 09:50:51 +11:00
Nicholas Nethercote e800967478 Simplify two matches.
Matches involving `GenericArgKind` pairs typically use a single `_` for
the impossible case. This commit shortens two verbose matches in this
way.
2024-10-07 09:50:51 +11:00
Nicholas Nethercote 3386530c91 Streamline next_*_var* methods.
Inline and remove `next_const_var_id`, `next_int_var_id`,
`next_float_var_id`, all of which have a single call site.
2024-10-07 09:50:51 +11:00
Nicholas Nethercote deeb0c5cf3 Inline and remove InferCtxtBuilder::with_defining_opaque_types.
It has a single use.
2024-10-07 09:50:51 +11:00
Nicholas Nethercote 0ca4784c45 Fix FIXME comment on FixupError.
`FixupError` is isomorphic with `TyOrConstInferVar`, so this commit
changes it to just be a wrapper around `TyOrConstInferVar`.

Also, move the `Display` impl for `FixupError` next to `FixupError`.
2024-10-07 09:50:51 +11:00
Nicholas Nethercote 25d1ef1993 Remove InferCtxt::err_count_on_creation.
It's no longer used meaningfully.

This also means `DiagCtxtHandle::err_count_excluding_lint_errs` can be
removed.
2024-10-07 09:50:50 +11:00
Nicholas Nethercote 2d2755ff97 Reduce visibilities some more.
It helps people reading the code understand how widely things are used.
2024-10-07 09:50:50 +11:00
Nicholas Nethercote 5c015eed47 Remove unused UnitResult type. 2024-10-07 09:50:50 +11:00
Nicholas Nethercote 5486d72e77 Reduce visibilities.
Three of the modules don't need to be `pub`, and then
`warn(unreachable_pub)` identifies a bunch more things that also
shouldn't be `pub`, plus a couple of things that are unused.
2024-10-07 09:50:50 +11:00
Nicholas Nethercote 7a9bbd05c4 Rename errors/mod.rs as errors.rs.
It's simpler, for this tiny module.
2024-10-07 09:50:50 +11:00
Nicholas Nethercote cfeee7bcbf Remove unused features. 2024-10-07 09:50:49 +11:00
Brezak aa4f16a6e7 Check that #[pointee] is applied only to generic arguments 2024-10-06 23:56:27 +02:00
bors 1b3b8e7b02 Auto merge of #128651 - folkertdev:naked-asm-macro-v2, r=Amanieu
add `naked_asm!` macro for use in `#[naked]` functions

tracking issue: https://github.com/rust-lang/rust/issues/90957

Adds the `core::arch::naked_asm` macro, to be used in `#[naked]` functions, but providing better error messages and a place to explain the restrictions on assembly in naked functions.

This PR does not yet require that the `naked_asm!` macro is used inside of `#[naked]` functions:

- the `asm!` macro can still be used in `#[naked]` functions currently, with the same restrictions and error messages as before.
- the `naked_asm!` macro can be used outside of `#[naked]` functions. It has not yet been decided whether that should be allowed long-term.

In this PR, the parsing code of `naked_asm!` now enforces the restrictions on assembly in naked functions, with the exception of checking that the `noreturn` option is specified. It also has not currently been decided if `noreturn` should be implicit or not.

This PR looks large because it touches a bunch of tests. The code changes are mostly straightforward I think: we now have 3 flavors of assembly macro, and that information must be propagated through the parsing code and error messages.

cc `@Lokathor`

r? `@Amanieu`
2024-10-06 21:51:18 +00:00
bors 55a22d2a63 Auto merge of #131337 - matthiaskrgr:rollup-j37xn8o, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #131001 (add clarity for custom path installation)
 - #131307 (Android: Debug assertion after setting thread name)
 - #131322 (Update out-dated link)
 - #131335 (grammar fix)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-06 19:24:25 +00:00
Matthias Krüger 93b94657b2 Rollup merge of #131335 - dacianpascu06:fix-typo, r=joboet
grammar fix
2024-10-06 20:43:41 +02:00
Matthias Krüger ab81e044e0 Rollup merge of #131322 - mu001999-contrib:cleanup/invalid-url, r=jieyouxu
Update out-dated link
2024-10-06 20:43:40 +02:00
Matthias Krüger 9e8c03018f Rollup merge of #131307 - YohDeadfall:prctl-set-name-dbg-assert, r=workingjubilee
Android: Debug assertion after setting thread name

While `prctl` cannot fail if it points to a valid buffer, it's still better to assert the result as it's done for other places.
2024-10-06 20:43:40 +02:00
Matthias Krüger 1e2b77d9ab Rollup merge of #131001 - iyernaveenr:naveen_iyer/installation_clarity, r=onur-ozkan
add clarity for custom path installation

install.sysconfdir is another value, in addition to install.prefix, that could be set for custom path installation.
2024-10-06 20:43:39 +02:00