Commit graph

136433 commits

Author SHA1 Message Date
bors
85d089b41e Auto merge of #103392 - RalfJung:miri, r=oli-obk
update Miri

I had to use a hacked version of josh to create this, so let's be careful with merging this and maybe wait a bit to see if the josh issue becomes more clear. But the history looks good to me, we are not adding duplicates of rustc commits that were previously mirrored to Miri.

Also I want to add some cross-testing of Miri in x.py.
2022-10-25 12:33:39 +00:00
Ralf Jung
a157e0e88f Miri: disable macOS testing for now 2022-10-25 13:40:38 +02:00
Dylan DPC
8ba2a651fb
Rollup merge of #103122 - ouz-a:mir-technical-debt, r=oli-obk
Remove misc_cast and validate types when casting

Continuing our work in #102675

r? ````@oli-obk````
2022-10-25 14:43:14 +05:30
bors
31d754a1df Auto merge of #102988 - dpaoliello:inlinerawdylib, r=dpaoliello
Support raw-dylib functions being used inside inlined functions

Fixes #102714

Issue Details:
When generating the import library for `raw-dylib` symbols, we currently only use the functions and variables declared within the current crate. This works fine if all crates are static libraries or `rlib`s as the generated import library will be contained in the static library or `rlib` itself, but if a dependency is a dynamic library AND the use of a `raw-dylib` function or variable is inlined or part of a generic instantiation then the current crate won't see its dependency's import library and so linking will fail.

Fix Details:
Instead, when we generate the import library for a `dylib` or `bin` crate, we will now generate it for the symbols both for the current crate and all upstream crates. We do this in two steps so that the import library for the current crate is passed into the linker first, thus it is preferred if there are any ambiguous symbols.
2022-10-25 04:57:51 +00:00
Daniel Paoliello
3a1ef50b34 Support raw-dylib functions being used inside inlined functions 2022-10-24 16:17:38 -07:00
Yuki Okushi
d0ffd20a75
Rollup merge of #103495 - Enselic:rustdoc-unix_sigpipe, r=notriddle
rustdoc: Use `unix_sigpipe` instead of `rustc_driver::set_sigpipe_handler`

Do what was already done for `rustc` in #102587, namely start using `unix_sigpipe` instead of `rustc_driver::set_sigpipe_handler`.

After this has been merged, we can completely remove `rustc_driver::set_sigpipe_handler`.

PR that added `set_sigpipe_handler`: https://github.com/rust-lang/rust/pull/49606

Tracking issue for `unix_sigpipe`: #97889

Verification of this change
---------------------------

1. Remove `#[unix_sigpipe = "sig_dfl"]`
1. Run `./x.py build`
1. Run `./build/aarch64-apple-darwin/stage1/bin/rustdoc --help | false`
1. Observe ICE
1. Add back `#[unix_sigpipe = "sig_dfl"]`
1. Run `./x.py build`
1. Run `./build/aarch64-apple-darwin/stage1/bin/rustdoc --help | false`
1. Observe ICE fixed

``@rustbot`` labels +T-rustdoc
2022-10-25 08:01:31 +09:00
Yuki Okushi
b09ce608a8
Rollup merge of #103494 - notriddle:notriddle/test-arrow-hover, r=GuillaumeGomez
rustdoc: remove redundant CSS `a.test-arrow:hover`

In 4b402dbe69, when this rule was added, it was overriding a rule that made all links in docblock get an underline when hovered. This became redundant when, after reordering the rules, 7585632052 changed the pro-underline rule to exclude the test-arrow link anyway.
2022-10-25 08:01:31 +09:00
Yuki Okushi
9ecba382a6
Rollup merge of #103493 - notriddle:notriddle/source-sidebar-logo, r=GuillaumeGomez
rustdoc: remove unused `.sidebar-logo` DOM on source pages
2022-10-25 08:01:30 +09:00
Yuki Okushi
d77e2394bd
Rollup merge of #103486 - GuillaumeGomez:cleanup-rustdoc-gui-highlight-colors, r=notriddle
Use functions in highlight-colors rustdoc GUI test

r? ``@notriddle``
2022-10-25 08:01:30 +09:00
Yuki Okushi
db0e438370
Rollup merge of #103462 - notriddle:notriddle/source-pre-rust-white-space, r=Dylan-DPC
rustdoc: remove no-op CSS `.source pre.rust { white-space: pre }`

This rule, added in 49e6db7f35, overrode a rule in normalize.css.

49e6db7f35/src/librustdoc/html/static/normalize.css (L169-L175)

When normalize.css was updated, this rule went away.

a8edd0c5aa
2022-10-25 08:01:29 +09:00
Yuki Okushi
3a325b101d
Rollup merge of #103410 - camsteffen:link-unstable-book, r=JohnTitor
-Z docs: Add link to unstable book
2022-10-25 08:01:28 +09:00
Yuki Okushi
12babb623a
Rollup merge of #103409 - compiler-errors:rpitit-signature-mismatch, r=lcnr
Delay span bug when we can't map lifetimes back in `collect_trait_impl_trait_tys`

When a lifetime is late-bound in a trait signature, but early-bound in an impl signature, we already emit an error -- however, we also ICE in `collect_trait_impl_trait_tys`, so just delay a bug here.

Fixes #103407
2022-10-25 08:01:28 +09:00
Yuki Okushi
6383540130
Rollup merge of #103382 - compiler-errors:anon-apit-lt-region-ice, r=cjgillot
Don't ICE when reporting borrowck errors involving regions from `anonymous_lifetime_in_impl_trait`

The issue here is that when we have:

```
trait Trait<'a> { .. }

fn foo(arg: impl Trait) { .. }
```

The anonymous lifetime `'_` that we generate for `arg: impl Trait` doesn't end up in the argument type (which is a param) but in a where-clause of the function, in a predicate whose self type is that param ty.

Fixes #101660

r? ``@cjgillot``
2022-10-25 08:01:28 +09:00
Yuki Okushi
e47d222a94
Rollup merge of #103350 - clubby789:refer-to-assoc-method, r=wesleywiser
Change terminology for assoc method suggestions when they are not called

Fixes #103325

```@rustbot``` label +A-diagnostics
2022-10-25 08:01:27 +09:00
Yuki Okushi
11d11e3415
Rollup merge of #103333 - chenyukang:yukang/fix-103143, r=wesleywiser
Fix assertion failed for break_last_token and trailing token

Fixes #103143
2022-10-25 08:01:27 +09:00
Michael Goulet
fa5cf90b8d Delay span bug when we can't map lifetimes back in collect_trait_impl_trait_tys 2022-10-24 18:45:50 +00:00
Martin Nordholts
5e624bf4ba rustdoc: Use unix_sigpipe instead of rustc_driver::set_sigpipe_handler
Start using `unix_sigpipe` instead of
`rustc_driver::set_sigpipe_handler`.

After this has been merged, we can completely remove
`rustc_driver::set_sigpipe_handler`.

Verification of this change
---------------------------

1. Remove `#[unix_sigpipe = "sig_dfl"]`
1. Run `./x.py build`
1. Run `./build/aarch64-apple-darwin/stage1/bin/rustdoc --help | false`
1. Observe ICE
1. Add back `#[unix_sigpipe = "sig_dfl"]`
1. Run `./x.py build`
1. Run `./build/aarch64-apple-darwin/stage1/bin/rustdoc --help | false`
1. Observe ICE fixed
2022-10-24 20:40:46 +02:00
Michael Howell
f0f0a7dbc2 rustdoc: remove redundant CSS a.test-arrow:hover
In 4b402dbe69, when this rule was added, it
was overriding a rule that made all links in docblock get an underline when
hovered. This became redundant when, after reordering the rules,
7585632052 changed the pro-underline rule to
exclude the test-arrow link anyway.
2022-10-24 11:39:19 -07:00
Michael Howell
4e1abcda1b rustdoc: remove unused .sidebar-logo DOM on source pages 2022-10-24 10:47:24 -07:00
bors
758f19645b Auto merge of #103337 - flip1995:clippyup, r=Manishearth
Update Clippy

r? `@Manishearth`
2022-10-24 16:50:15 +00:00
Guillaume Gomez
1dff99f46c Use functions in highlight-colors rustdoc GUI test 2022-10-24 17:44:17 +02:00
Cameron Steffen
c2bc3bcfb0 Document link to unstable book 2022-10-24 10:34:52 -05:00
bors
c07a6a9c0c Auto merge of #94063 - Aaron1011:pretty-print-rental, r=lcnr
Only apply `ProceduralMasquerade` hack to older versions of `rental`

The latest version of `rental` (v0.5.6) contains a fix that allows it to
compile without relying on the pretty-print back-compat hack.

Hopefully, there are no longer any crates relying on the affected
versions of the (much less popular) `procedural-masquerade` crate. This
should allow us to target the pretty-print back-compat hack specifically
to older versions of `rental`, and specifically mention upgrading to
`rental` v0.5.6 in the lint message.
2022-10-24 13:35:48 +00:00
Yuki Okushi
8e9d2b6971
Rollup merge of #103437 - bjorn3:sync_cg_clif-2022-10-23, r=bjorn3
Sync rustc_codegen_cranelift

r? `@ghost`

`@rustbot` label +A-codegen +A-cranelift +T-compiler
2022-10-24 19:32:28 +09:00
Yuki Okushi
779418deb4
Rollup merge of #99939 - saethlin:pre-sort-tests, r=thomcc,jackh726
Sort tests at compile time, not at startup

Recently, another Miri user was trying to run `cargo miri test` on the crate `iced-x86` with `--features=code_asm,mvex`. This configuration has a startup time of ~18 minutes. That's ~18 minutes before any tests even start to run. The fact that this crate has over 26,000 tests and Miri is slow makes a lot of code which is otherwise a bit sloppy but fine into a huge runtime issue.

Sorting the tests when the test harness is created instead of at startup time knocks just under 4 minutes out of those ~18 minutes. I have ways to remove most of the rest of the startup time, but this change requires coordinating changes of both the compiler and libtest, so I'm sending it separately.

(except for doctests, because there is no compile-time harness)
2022-10-24 19:32:25 +09:00
Ralf Jung
84e6732d1e also smoke-test 'cargo miri test' 2022-10-24 11:49:40 +02:00
Ralf Jung
a61737ed6e add support for testing Miri on other targets, and do some cross-testing on CI 2022-10-24 11:49:36 +02:00
bors
71e81ab674 Auto merge of #2615 - RalfJung:josh, r=oli-obk
point to my fork of josh for now

This is the version of josh that I used to create https://github.com/rust-lang/rust/pull/103392.
2022-10-24 08:14:12 +00:00
Ralf Jung
0d0a603aab point to my fork of josh for now 2022-10-24 08:05:52 +02:00
Michael Howell
45a9d18969 rustdoc: remove no-op CSS .source pre.rust { white-space: pre }
This rule, added in 49e6db7f35, overrode a
rule in normalize.css.

49e6db7f35/src/librustdoc/html/static/normalize.css (L169-L175)

When normalize.css was updated, this rule went away.

a8edd0c5aa
2022-10-23 22:16:13 -07:00
Aaron Hill
541128dcb3
Override linker in cargotest on windows 2022-10-23 19:33:03 -05:00
bors
7feb003882 Auto merge of #103452 - notriddle:rollup-peewevm, r=notriddle
Rollup of 11 pull requests

Successful merges:

 - #100462 (Clarify `array::from_fn` documentation)
 - #101644 (Document surprising and dangerous fs::Permissions behaviour on Unix)
 - #103005 (kmc-solid: Handle errors returned by `SOLID_FS_ReadDir`)
 - #103140 (Add diagnostic for calling a function with the same name with unresolved Macro)
 - #103254 (rustdoc: do not filter out cross-crate `Self: Sized` bounds)
 - #103347 (bootstrap: also create rustc-src component in sysroot)
 - #103402 (Fix wrapped valid-range handling in ty_find_init_error)
 - #103414 (Pretty print lifetimes captured by RPIT)
 - #103424 (rustdoc: remove no-op CSS `.code-header { border-bottom: none }`)
 - #103434 (Use functions for jump-to-def-background rustdoc GUI test)
 - #103447 (`MaybeUninit`: use `assume_init_drop()` in the partially initialized array example)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-24 00:29:51 +00:00
Michael Howell
296700eec5
Rollup merge of #103434 - GuillaumeGomez:gui-test-jump-to-def-background-cleanup, r=notriddle
Use functions for jump-to-def-background rustdoc GUI test

r? `@notriddle`
2022-10-23 14:48:18 -07:00
Michael Howell
88e0546a4c
Rollup merge of #103424 - notriddle:notriddle/code-header-border-bottom-none, r=GuillaumeGomez
rustdoc: remove no-op CSS `.code-header { border-bottom: none }`

The code headers are always h3 or h4, which don't have border-bottom by default anyway.
2022-10-23 14:48:18 -07:00
Michael Howell
039e9b6b94
Rollup merge of #103414 - compiler-errors:rpit-print-lt, r=cjgillot
Pretty print lifetimes captured by RPIT

This specifically makes the output in #103409 change from:

```diff
  error: `impl` item signature doesn't match `trait` item signature
    --> $DIR/signature-mismatch.rs:15:5
     |
  LL |     fn async_fn(&self, buff: &[u8]) -> impl Future<Output = Vec<u8>>;
     |     ----------------------------------------------------------------- expected `fn(&'1 Struct, &'2 [u8]) -> impl Future<Output = Vec<u8>>`
  ...
  LL |     fn async_fn<'a>(&self, buff: &'a [u8]) -> impl Future<Output = Vec<u8>> + 'a {
-  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found `fn(&'1 Struct, &'2 [u8]) -> impl Future<Output = Vec<u8>>`
+  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found `fn(&'1 Struct, &'2 [u8]) -> impl Future<Output = Vec<u8>> + '2`
     |
     = note: expected `fn(&'1 Struct, &'2 [u8]) -> impl Future<Output = Vec<u8>>`
-               found `fn(&'1 Struct, &'2 [u8]) -> impl Future<Output = Vec<u8>>`
+               found `fn(&'1 Struct, &'2 [u8]) -> impl Future<Output = Vec<u8>> + '2`
     = help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
     = help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output

  error: aborting due to previous error
```

Along with the UI tests in this PR, which I think are all improvements!

r? `@oli-obk` though feel free to re-roll
2022-10-23 14:48:17 -07:00
Michael Howell
9f06fbd1ad
Rollup merge of #103402 - joshtriplett:niche-wrap-fix, r=oli-obk
Fix wrapped valid-range handling in ty_find_init_error

Rust's niche handling allows for wrapping valid ranges with end < start;
for instance, a valid range with start=43 and end=41 means a niche of
42. Most places in the compiler handle this correctly, but
`ty_find_init_error` assumed that `lo > 0` means the type cannot contain a
zero.

Fix it to handle wrapping ranges.
2022-10-23 14:48:17 -07:00
Michael Howell
646e0d370d
Rollup merge of #103347 - RalfJung:rustc-src, r=Mark-Simulacrum
bootstrap: also create rustc-src component in sysroot

Fixes https://github.com/rust-lang/rust-analyzer/issues/12926
2022-10-23 14:48:16 -07:00
Michael Howell
28a1bafd48
Rollup merge of #103254 - fmease:fix-24183, r=GuillaumeGomez
rustdoc: do not filter out cross-crate `Self: Sized` bounds

All type parameters **except `Self`** are implicitly `Sized` ([via](https://doc.rust-lang.org/nightly/std/marker/trait.Sized.html)). Previously, we disregarded the exception of `Self` and omitted cross-crate `Sized` bounds of *any* type parameter *including* `Self` when rendering.
From now on, we *do* render cross-crate `Self: Sized` bounds.

Most notably, in `std` we now finally properly render the `Sized` bound of the `Clone` trait as well as the `Self: Sized` bound on `Iterator::map`.

Fixes #24183.

``@rustbot`` label T-rustdoc A-cross-crate-reexports
r? rustdoc
2022-10-23 14:48:16 -07:00
Michael Howell
3df030d441
Rollup merge of #103140 - chenyukang:yukang/fix-103112, r=estebank
Add diagnostic for calling a function with the same name with unresolved Macro

Fixes #103112
2022-10-23 14:48:15 -07:00
bors
7aa3613908 Auto merge of #103062 - cuviper:dist-mips, r=Mark-Simulacrum
Upgrade dist-mips*-linux to ubuntu:22.04 + crosstool-ng

These have no change in compatibility, still Linux 4.4 and glibc 2.23.

The main motivation for upgrading is that LLVM 16 will require at least GCC 7.1. Using crosstool-ng lets us choose our own toolchain versions, and then the Ubuntu version doesn't matter so much, just for the host compilation while we cross-compile.
2022-10-23 21:38:43 +00:00
Michael Goulet
c5df620419 Annotate static lifetimes too 2022-10-23 17:21:43 +00:00
ouz-a
4bd98443ed remove misc_cast and validate types 2022-10-23 18:47:16 +03:00
bors
1ca6777c01 Auto merge of #101403 - bjorn3:dylib_lto, r=Mark-Simulacrum
Enable LTO for rustc_driver.so

Alternative to https://github.com/rust-lang/rust/pull/97154

This enables LTO'ing dylibs behind a feature flag and uses this feature for compiling rustc_driver.so.
2022-10-23 15:00:31 +00:00
bjorn3
2d9d579d07 Update list of allowed cranelift dependencies 2022-10-23 16:43:29 +02:00
Guillaume Gomez
f112c3a418 Use functions for jump-to-def-background rustodoc GUI test 2022-10-23 15:40:56 +02:00
flip1995
da9755b6ba
Merge commit '4f142aa105' into clippyup 2022-10-23 15:18:45 +02:00
bjorn3
565b7e0db1
Update LLVM submodule 2022-10-23 13:48:03 +02:00
Jakub Beránek
c5c86806c8
Introduce dedicated -Zdylib-lto flag for enabling LTO on dylibs 2022-10-23 13:48:03 +02:00
Jakub Beránek
cba16819a1
Add rust.lto config option 2022-10-23 13:43:08 +02:00
bors
9be2f35a4c Auto merge of #103431 - Dylan-DPC:rollup-oozfo89, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #101293 (Recover when unclosed char literal is parsed as a lifetime in some positions)
 - #101908 (Suggest let for assignment, and some code refactor)
 - #103192 (rustdoc: Eliminate uses of `EarlyDocLinkResolver::all_traits`)
 - #103226 (Check `needs_infer` before `needs_drop` during HIR generator analysis)
 - #103249 (resolve: Revert "Set effective visibilities for imports more precisely")
 - #103305 (Move some tests to more reasonable places)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-23 11:33:18 +00:00