Commit Graph

213024 Commits

Author SHA1 Message Date
Albert Larsan
736342bb46
Correct typos in core::sync::Exclusive::get_{pin_mut, mut} 2022-12-12 09:19:17 +01:00
bors
2176e3a7a4 Auto merge of #105592 - matthiaskrgr:rollup-1cazogq, r=matthiaskrgr
Rollup of 2 pull requests

Successful merges:

 - #104997 (Move tests)
 - #105569 (`bug!` with a better error message for failing `Instance::resolve`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-12-12 07:57:41 +00:00
Matthias Krüger
5877a3fce1
Rollup merge of #105569 - compiler-errors:resolve-bug-better, r=TaKO8Ki
`bug!` with a better error message for failing `Instance::resolve`

Better ICE message when `.unwrap().unwrap()` fails.
2022-12-12 08:21:32 +01:00
Matthias Krüger
139ff9d6e8
Rollup merge of #104997 - c410-f3r:moar-errors, r=petrochenkov
Move tests

r? `@petrochenkov`
2022-12-12 08:21:31 +01:00
Jesse Ruderman
c27d7949a1
Fix typo in comment: length_limit 2022-12-11 23:21:10 -08:00
bors
17a092f467 Auto merge of #105160 - nnethercote:rm-Lit-token_lit, r=petrochenkov
Remove `token::Lit` from `ast::MetaItemLit`.

Currently `ast::MetaItemLit` represents the literal kind twice. This PR removes that redundancy. Best reviewed one commit at a time.

r? `@petrochenkov`
2022-12-12 05:16:50 +00:00
bors
2cd2070af7 Auto merge of #105160 - nnethercote:rm-Lit-token_lit, r=petrochenkov
Remove `token::Lit` from `ast::MetaItemLit`.

Currently `ast::MetaItemLit` represents the literal kind twice. This PR removes that redundancy. Best reviewed one commit at a time.

r? `@petrochenkov`
2022-12-12 05:16:50 +00:00
Erik Desjardins
6085d33033 fix transmutes between pointers in different address spaces 2022-12-11 22:27:09 -05:00
bors
b397bc0727 Auto merge of #105485 - nnethercote:fix-lint-perf-regressions, r=cjgillot
Fix lint perf regressions

#104863 caused small but widespread regressions in lint performance. I tried to improve things in #105291 and #105416 with minimal success, before fully understanding what caused the regression. This PR effectively reverts all of #105291 and part of #104863 to fix the perf regression.

r? `@cjgillot`
2022-12-12 02:17:08 +00:00
bors
ee6533d740 Auto merge of #105579 - matthiaskrgr:rollup-vw5dlqc, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #101648 (Better documentation for env::home_dir()'s broken behaviour)
 - #105283 (Don't call `diagnostic_hir_wf_check` query if we have infer variables)
 - #105369 (Detect spurious ; before assoc fn body)
 - #105472 (Make encode_info_for_trait_item use queries instead of accessing the HIR)
 - #105521 (separate heading from body)
 - #105555 (llvm-wrapper: adapt for LLVM API changes)
 - #105560 (Extend rustdoc hashtag prepended line test)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-12-11 23:36:15 +00:00
Esteban Küber
2838b8e515 Point at method call when it is the source of the bound error 2022-12-11 14:49:50 -08:00
Caio
645fac3e1d Move tests 2022-12-11 19:43:42 -03:00
Matthias Krüger
427ea68278
Rollup merge of #105560 - GuillaumeGomez:extend-rustdoc-hashtag-prep-line, r=notriddle
Extend rustdoc hashtag prepended line test

Follow-up of https://github.com/rust-lang/rust/pull/105539. This case wasn't checked so better add it.

r? `@notriddle`
2022-12-11 23:36:48 +01:00
Matthias Krüger
79f99e7969
Rollup merge of #105555 - krasimirgg:llvm-int-opt-2, r=cuviper
llvm-wrapper: adapt for LLVM API changes

This is a follow-up of 75aec4703d. There, I updated the wrapper to only include llvm/ADT/Optional.h for LLVM version below 16. But I missed updating some of the None references.

Found by our experimental rust + llvm at HEAD bot: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/15587#0185006b-e0af-49e5-8b06-280ed125ff0d/200-539
2022-12-11 23:36:47 +01:00
Matthias Krüger
6042f5bca7
Rollup merge of #105521 - tshepang:keep-heading-separate, r=nagisa
separate heading from body
2022-12-11 23:36:46 +01:00
Matthias Krüger
6ed8cb6616
Rollup merge of #105472 - spastorino:make-encoder-use-queries, r=oli-obk
Make encode_info_for_trait_item use queries instead of accessing the HIR

This change avoids accessing the HIR on `encode_info_for_trait_item` and uses queries. We will need to execute this function for elements that have no HIR and by using queries we will be able to feed for definitions that have no HIR.

r? ``@oli-obk``
2022-12-11 23:36:46 +01:00
Matthias Krüger
4154e14f9a
Rollup merge of #105369 - chenyukang:yukang/fix-105226, r=TaKO8Ki
Detect spurious ; before assoc fn body

Fixes #105226

r? ``@TaKO8Ki``
2022-12-11 23:36:46 +01:00
Matthias Krüger
aa7b5b32e3
Rollup merge of #105283 - compiler-errors:ty-var-in-hir-wfcheck, r=nagisa
Don't call `diagnostic_hir_wf_check` query if we have infer variables

Fixes #105260
2022-12-11 23:36:45 +01:00
Matthias Krüger
668976b80a
Rollup merge of #101648 - Timmmm:home_dir_docs, r=joshtriplett
Better documentation for env::home_dir()'s broken behaviour

This improves the documentation to say *why* it was deprecated. The reason was because it reads `HOME` on Windows which is meaningless there. Note that the PR that deprecated it stated that returning an empty string if `HOME` is set to an empty string was a problem, however I can find no evidence that this is the case. `cd` handles it fine whereas if `HOME` is unset it gives an explicit `HOME not set` error.

* Original deprecation reason: https://internals.rust-lang.org/t/deprecate-or-break-fix-std-env-home-dir/7315
* Original deprecation PR: https://github.com/rust-lang/rust/pull/51656

See #71684
2022-12-11 23:36:44 +01:00
Nicholas Nethercote
4ff5a3655f Speed up the "builtin lints only" case.
This commit partly undoes #104863, which combined the builtin lints pass
with other lints. This caused a slowdown, because often there are no
other lints, and it's faster to do a pass with a single lint directly
than it is to do a combined pass with a `passes` vector containing a
single lint.
2022-12-12 08:59:27 +11:00
Nicholas Nethercote
3c53781800 Reinstate {Early,Late}LintPassObjects.
I removed these in #105291, and subsequently learned they are necessary
for performance.

This commit reinstates them with the new and more descriptive names
`RuntimeCombined{Early,Late}LintPass`, similar to the existing passes
like `BuiltinCombinedEarlyLintPass`. It also adds some comments,
particularly emphasising how we have ways to combine passes at both
compile-time and runtime. And it moves some comments around.
2022-12-12 08:59:27 +11:00
Nicholas Nethercote
2b05f84115 Rename run_early_passes as lint_callback.
This matches the name used in `late.rs`.
2022-12-12 08:59:27 +11:00
bors
bdb07a8ec8 Auto merge of #103647 - lqd:osx-x64-lto, r=Mark-Simulacrum
Enable ThinLTO for rustc on `x86_64-apple-darwin`

Local measurements seemed to show an improvement on a couple benchmarks, so I'd like to test real CI builds, and see if the builder doesn't timeout with the expected slight increase in build times.

Let's start with x64 rustc ThinLTO, and then figure out the file structure to configure LLVM ThinLTO. Maybe we'll then try `aarch64` builds since that also looked good locally.
2022-12-11 20:38:34 +00:00
Ayush Singh
2bb6bd6546
Add batch flag to remote-test-server
When using this flag, the stdout and stderr is sent in a single batch
instead of being streamed. It also used `Command::output` instead of
`Command::spawn`. This is useful for targets that might support std
but not threading (Eg: UEFI).

Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com>
2022-12-12 01:21:46 +05:30
Michael Goulet
f7c76ad662 bug! with a better error message for failing Instance::resolve 2022-12-11 19:48:24 +00:00
Michael Goulet
bc293ed53e bug! with a better error message for failing Instance::resolve 2022-12-11 19:48:24 +00:00
Esteban Küber
ce486d538b Use with_forced_trimmed_paths 2022-12-11 11:38:43 -08:00
Esteban Küber
8d9ffa379e fix rebase 2022-12-11 09:46:02 -08:00
Esteban Küber
78f97595a3 Only point at methods that might be relevant 2022-12-11 09:46:02 -08:00
Esteban Küber
aff0ab43c8 Add label to method chains where assoc type remains the same 2022-12-11 09:46:02 -08:00
Esteban Küber
c77ad2d765 Remove mention of "assoc type" in label as it is already in the note message 2022-12-11 09:46:02 -08:00
Esteban Küber
71db025cfa Account for method call chains split across multiple bindings 2022-12-11 09:46:02 -08:00
Esteban Küber
64bc975d27 Mention only assoc types changes 2022-12-11 09:46:01 -08:00
Esteban Küber
49d5bef586 Expand iterator chain test 2022-12-11 09:46:01 -08:00
Michael Goulet
bc60d50eaa Provide associated type information in method chains
When encountering an unmet obligation that affects a method chain, like
in iterator chains where one of the links has the wrong associated
type, we point at every method call and mention their evaluated
associated type at that point to give context to the user of where
expectations diverged from the code as written.

```
note: the expression is of type `Map<std::slice::Iter<'_, {integer}>, [closure@$DIR/invalid-iterator-chain.rs:12:18: 12:21]>`
  --> $DIR/invalid-iterator-chain.rs:12:14
   |
LL |         vec![0, 1]
   |         ---------- this expression has type `Vec<{integer}>`
LL |             .iter()
   |              ------ associated type `std::iter::Iterator::Item` is `&{integer}` here
LL |             .map(|x| { x; })
   |              ^^^^^^^^^^^^^^^ associated type `std::iter::Iterator::Item` is `()` here
```
2022-12-11 09:46:01 -08:00
bors
657eefe2dc Auto merge of #103591 - lqd:win-lto, r=Mark-Simulacrum
Enable ThinLTO for rustc on x64 msvc

This applies the great work from `@bjorn3` and `@Kobzol` in https://github.com/rust-lang/rust/pull/101403 to x64 msvc.

Here are the local results for the try build `68c5c85ed759334a11f0b0e586f5032a23f85ce4`, compared to its parent `0a6b941df354c59b546ec4c0d27f2b9b0cb1162c`. Looking better than my previous local builds.

![image](https://user-images.githubusercontent.com/247183/198158039-98ebac0e-da0e-462e-8162-95e88345edb9.png)

(I can't show cycle counts, as that option is failing on the windows version of the perf collector, but I'll try to analyze and debug this soon)

This will be the first of a few tests for rustc / llvm / both ThinLTO on the windows and mac targets.
2022-12-11 17:37:12 +00:00
bors
d137783642 Auto merge of #102900 - abrachet:master, r=bjorn3
Don't internalize __llvm_profile_counter_bias

Currently, LLVM profiling runtime counter relocation cannot be used by rust during LTO because symbols are being internalized before all symbol information is known.

This mode makes LLVM emit a __llvm_profile_counter_bias symbol which is referenced by the profiling initialization, which itself is pulled in by the rust driver here [1].

It is enabled with -Cllvm-args=-runtime-counter-relocation for platforms which are opt-in to this mode like Linux. On these platforms there will be no link error, rather just surprising behavior for a user which request runtime counter relocation. The profiling runtime will not see that symbol go on as if it were never there. On Fuchsia, the profiling runtime must have this symbol which will cause a hard link error.

As an aside, I don't have enough context as to why rust's LTO model is how it is. AFAICT, the internalize pass is only safe to run at link time when all symbol information is actually known, this being an example as to why. I think special casing this symbol as a known one that LLVM can emit which should not have it's visbility de-escalated should be fine given how seldom this pattern of defining an undefined symbol to get initilization code pulled in is. From a quick grep, __llvm_profile_runtime is the only symbol that rustc does this for.

[1] 0265a3e93b/compiler/rustc_codegen_ssa/src/back/linker.rs (L598)
2022-12-11 14:42:45 +00:00
Guillaume Gomez
6e583ffbd9 Extend rustdoc hashtag prepended line test 2022-12-11 14:39:09 +01:00
bjorn3
7e10f1a0f4 Update dependencies 2022-12-11 12:44:41 +00:00
bors
4de4d60779 Auto merge of #105508 - eduardosm:ptr-methods-inline-always, r=Mark-Simulacrum
Make pointer `sub` and `wrapping_sub` methods `#[inline(always)]`

Splitted from https://github.com/rust-lang/rust/pull/105262
2022-12-11 11:42:15 +00:00
Martin Kröning
23a34c18f7 bootstrap: Allow installing llvm-tools 2022-12-11 12:19:17 +01:00
bjorn3
a89cef5a0a Update rustc test suite failure list 2022-12-11 11:14:26 +00:00
bjorn3
21f43556ac Fix for "Support Option and similar enums as type of static variable with linkage attribute"
cc rust-lang/rust#104799
2022-12-11 10:56:54 +00:00
bjorn3
ef1cb95687 Rustup to rustc 1.68.0-nightly (c6fcdb690 2022-12-10) 2022-12-11 11:10:14 +01:00
bjorn3
8f9a048138 Sync from rust b3ddfeb5a8 2022-12-11 11:05:00 +01:00
Krasimir Georgiev
cbdc00f6e6 llvm-wrapper: adapt for LLVM API changes
This is a follow-up of
75aec4703d.
There, I updated the wrapper to only include llvm/ADT/Optional.h for
LLVM version below 16. But I missed updating some of the None references.

Found by our experimental rust + llvm at HEAD bot:
https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/15587#0185006b-e0af-49e5-8b06-280ed125ff0d/200-539
2022-12-11 09:14:50 +00:00
bors
f34356eace Auto merge of #105554 - matthiaskrgr:rollup-ir60gc7, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #105411 (Introduce `with_forced_trimmed_paths`)
 - #105532 (Document behaviour of `--remap-path-prefix` with several matches)
 - #105537 (compiler: remove unnecessary imports and qualified paths)
 - #105539 (rustdoc: Only hide lines starting with `#` in rust code blocks )
 - #105546 (Add some regression tests for #44454)
 - #105547 (Add regression test for #104582)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-12-11 09:01:37 +00:00
Matthias Krüger
49027dbc02
Rollup merge of #105547 - JohnTitor:issue-104582, r=compiler-errors
Add regression test for #104582

Closes #104582
r? `@compiler-errors`

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-12-11 09:51:58 +01:00
Matthias Krüger
f145825baf
Rollup merge of #105546 - JohnTitor:issue-44454, r=compiler-errors
Add some regression tests for #44454

Closes #44454
r? ``@compiler-errors``

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-12-11 09:51:58 +01:00
Matthias Krüger
dd00582bc8
Rollup merge of #105539 - GuillaumeGomez:hashtag-prepended-lines-non-rust, r=notriddle
rustdoc: Only hide lines starting with `#` in rust code blocks

Fixes https://github.com/rust-lang/rust/issues/105527.

So before approving, this is a big question: in rust code blocks, in a line starts with a `#`, we hide it in the output. However, should we do the same for non-rust code blocks too? I think it's a bit problematic to do it because `#` can be used for many things but I prefer to check first with everyone (might also be worth updating documentation too).

cc ``@rust-lang/rustdoc``
r? ``@notriddle``
2022-12-11 09:51:57 +01:00