Commit Graph

243528 Commits

Author SHA1 Message Date
Nicholas Thompson
33a47df84a Added int_pow micro-benchmarks 2024-01-11 11:30:12 -05:00
Nicholas Thompson
7c28a50a3a removed nonfunctioning benchmark
It could also have been fixed by removing a semicolon instead.
2024-01-11 11:30:12 -05:00
Philipp Krones
af39354819
Merge commit '26ac6aab023393c94edf42f38f6ad31196009643' 2024-01-11 17:27:03 +01:00
bors
26ac6aab02 Auto merge of #12130 - flip1995:rustup, r=flip1995
Rustup

r? `@ghost`

changelog: none
2024-01-11 16:25:11 +00:00
Philipp Krones
7d8b6e451e
Bump nightly version -> 2024-01-11 2024-01-11 17:20:07 +01:00
Philipp Krones
2c0cea7cbc
Merge remote-tracking branch 'upstream/master' into rustup 2024-01-11 17:19:53 +01:00
bors
062e7c6a95 Auto merge of #119802 - nikic:update-llvm-19, r=cuviper
Update LLVM submodule

Fixes https://github.com/rust-lang/rust/issues/118867.
Fixes https://github.com/rust-lang/rust/issues/119160.
Fixes https://github.com/rust-lang/rust/issues/119179.

r? `@cuviper`
2024-01-11 15:28:20 +00:00
bors
87ff58d1eb Auto merge of #12127 - giraffate:remove_giraffate_from_the_reviewer_rotation, r=flip1995
Remove giraffate from the reviewer rotation

I've been less active in Clippy recently because I'm so busy that I don't have time for maintaining Clippy in my spare time. So, I remove myself from the reviewer rotation once. I hope to come back again.

I'll reassign the PRs later.

changelog: none
2024-01-11 14:23:03 +00:00
Ralf Jung
db860566bc give const-err4 a more descriptive name 2024-01-11 14:57:12 +01:00
hi-rustin
90cc8ba4bc fix: update broken stderr
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2024-01-11 21:39:44 +08:00
bors
68acb393c5 Auto merge of #119791 - Mark-Simulacrum:cut-leb128, r=cjgillot
Remove a large amount of leb128-coded integers

This removes ~41%[^1] of the leb128-encoded integers serialized during libcore compilation by changing enum tags to opportunistically use `u8` where feasible instead of the leb128 coding via `usize`.

This should have effectively zero impact on metadata file sizes, since almost all or all enum tags fit into the 7 bits available in leb128 for single-byte encodings. Perf results indicate this is basically neutral across the board except for an improvement in bootstrap time.

[^1]: More than half the remaining integers still fit into <= 128, so the leb128 coding still makes sense. 32% are zero, and 46% are <= 4.
2024-01-11 13:11:57 +00:00
Nadrieril
a24f4db41b Only lint ranges that really overlap 2024-01-11 14:04:11 +01:00
Nadrieril
6f6ba2571d Factor out collection of overlapping ranges 2024-01-11 13:59:41 +01:00
Nadrieril
89d01babe6 Track row intersections 2024-01-11 13:56:09 +01:00
Ralf Jung
6b6f2a5a28 rint: further doc tweaks 2024-01-11 13:33:27 +01:00
klensy
aa696c5a22 apply fmt 2024-01-11 15:04:48 +03:00
klensy
4580f4ab3f rustfmt.toml: don't ignore just any tests path, only root one 2024-01-11 14:59:59 +03:00
bors
9d8889cdfc Auto merge of #16348 - Veykril:nested-includes, r=Veykril
fix: Fix nested includes resolving from the wrong base file

Fixes https://github.com/rust-lang/rust-analyzer/issues/16109
2024-01-11 11:53:24 +00:00
bors
3e1ae6be21 Auto merge of #16347 - Veykril:find-path, r=Veykril
internal: Consider all kinds of explicit private imports in find_path

Builds on top of https://github.com/rust-lang/rust-analyzer/pull/16265 to make things a bit more general, now we consider all explicit private imports.
2024-01-11 11:42:08 +00:00
Lukas Wirth
215ede8497 fix: Fix nested includes resolving from the wrong base file 2024-01-11 12:41:47 +01:00
Lukas Wirth
b6e6d5d3af internal: Consider all kinds of explicit private imports in find_path 2024-01-11 12:22:04 +01:00
bors
d73bd3fb3b Auto merge of #119654 - onur-ozkan:bump-dependencies, r=clubby789
bump bootstrap dependencies

This PR removes hard-coded patch versions, updates bootstrap's dependency stack to recent versions (some of the versions were released 3-4 years ago), and removes a few dependencies from bootstrap.

Removed dependencies:

![image](https://github.com/rust-lang/rust/assets/39852038/95e86325-aea0-4055-bee5-245c144f662e)
2024-01-11 10:46:43 +00:00
bors
d5366b5c19 Auto merge of #16265 - Patryk27:suggest-pub-crate-imports, r=Veykril
fix: Acknowledge `pub(crate)` imports in import suggestions

rust-analyzer has logic that discounts suggesting `use`s for private imports, but that logic is unnecessarily strict - for instance given this code:

```rust
mod foo {
    pub struct Foo;
}

pub(crate) use self::foo::*;

mod bar {
    fn main() {
        Foo$0;
    }
}
```

... RA will suggest to add `use crate::foo::Foo;`, which not only makes the code overly verbose (especially in larger code bases), but also is disjoint with what rustc itself suggests.

This commit adjusts the logic, so that `pub(crate)` imports are taken into account when generating the suggestions; considering rustc's behavior, I think this change doesn't warrant any extra configuration flag.

Note that this is my first commit to RA, so I guess the approach taken here might be suboptimal - certainly feels somewhat hacky, maybe there's some better way of finding out the optimal import path 😅
2024-01-11 09:54:22 +00:00
Oli Scherer
fb44c848c3 Keep error types around, even in obligations.
These help silence follow up errors
2024-01-11 09:52:25 +00:00
Takayuki Nakata
31a27ed3c2 Remove giraffate from the reviewer rotation 2024-01-11 18:17:05 +09:00
Oli Scherer
55cab535e7 Taint more aggressively in astconv 2024-01-11 09:03:26 +00:00
Oli Scherer
af7f8f9811 Silence follow up errors if astconv already errored 2024-01-11 09:03:26 +00:00
Oli Scherer
252ac15286 Bubble up error type 2024-01-11 09:01:58 +00:00
bors
5278506a71 Auto merge of #119843 - TaKO8Ki:rollup-2y3s55q, r=TaKO8Ki
Rollup of 3 pull requests

Successful merges:

 - #116343 (Stop mentioning internal lang items in no_std binary errors)
 - #119814 (bootstrap: exclude link_jobs from `check_ci_llvm!` checks)
 - #119829 (Add debug info for macOS CI actions)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-01-11 08:21:21 +00:00
Nicholas Nethercote
4fd1db1aa5 Remove DiagnosticBuilder::buffer.
All its uses have been removed.
2024-01-11 18:38:05 +11:00
Nicholas Nethercote
6656413a5c Stop using DiagnosticBuilder::buffer in the parser.
One consequence is that errors returned by
`maybe_new_parser_from_source_str` now must be consumed, so a bunch of
places that previously ignored those errors now cancel them. (Most of
them explicitly dropped the errors before. I guess that was to indicate
"we are explicitly ignoring these", though I'm not 100% sure.)
2024-01-11 18:37:56 +11:00
onur-ozkan
f02f09a08e bless tidy
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-01-11 10:24:41 +03:00
onur-ozkan
8d0f888674 bump bootstrap dependencies
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-01-11 10:24:29 +03:00
Takayuki Maeda
a7713d76e0
Rollup merge of #119829 - ehuss:macos-sip, r=Kobzol
Add debug info for macOS CI actions

This adds some debugging information to the CI logs about the macOS runners to potentially help diagnose performance issues. I think this is unlikely to help, since I think the most likely issue is over-provisioning, but I figured it might be a worthy shot in the dark. The macos-12 runners definitely have issues with SIP randomly being enabled, but I have not seen evidence of that for macos-13.
2024-01-11 15:41:47 +09:00
Takayuki Maeda
ef1e49a641
Rollup merge of #119814 - nagisa:nagisa/releases-the-link-jobs-demons, r=clubby789
bootstrap: exclude link_jobs from `check_ci_llvm!` checks

This option is largely there to help people to manage the memory usage on their systems during the LLVM build. The linking phase is as usual are the heaviest part of the build and if in an unlucky conincidence the circumstances align to kick off N_CORES links at the same time, not even hundreds of GiB of memory may suffice. It makes a lot of sense for developers to set&forget this option unconditionally based on how buff their development device is.

Not to mention, this option does not, in any way, affect the generated code (at least as far as I know.) It really doesn’t matter what option the CI build LLVM used here and/or if it matches with the user’s configuration.

Finally, 0 actual link jobs implied by `download-ci-llvm` is guaranteed to stay within the limits that are reasonable to set with this option.
2024-01-11 15:41:46 +09:00
Takayuki Maeda
6794dc9a5f
Rollup merge of #116343 - Nilstrieb:maybe-dont-mention-all-the-weird-lang-items-just-saying, r=bjorn3
Stop mentioning internal lang items in no_std binary errors

When writing a no_std binary, you'll be greeted with nonsensical errors mentioning lang items like eh_personality and start. That's pretty bad because it makes you think that you need to define them somewhere! But oh no, now you're getting the `internal_features` lint telling you that you shouldn't use them! But you need a no_std binary! What now?

No problem! Writing a no_std binary is super easy. Just use panic=abort and supply your own platform specific entrypoint symbol (like `main`) and you're good to go. Would be nice if the compiler told you that, right?

This makes it so that it does do that.

I don't _love_ the new messages yet, but they're decent I think. They can probably be improved, please suggest improvements.
2024-01-11 15:41:46 +09:00
Nicholas Nethercote
d02150fd45 Fix lifetimes in StringReader.
Two different lifetimes are conflated. This doesn't matter right now,
but needs to be fixed for the next commit to work. And the more
descriptive lifetime names make the code easier to read.
2024-01-11 16:55:10 +11:00
Nicholas Nethercote
fbe68bc40c Stop using DiagnosticBuilder::buffer in BorrowckErrors.
But we can't easily switch from `Vec<Diagnostic>` to
`Vec<DiagnosticBuilder<G>>` because there's a mix of errors and warnings
which result in different `G` types. So we must make
`DiagnosticBuilder::into_diagnostic` public, but that's ok, and it will
get more use in subsequent commits.
2024-01-11 16:55:10 +11:00
Nicholas Nethercote
29c601aa0b Stop using DiagnosticBuilder::buffer in Checker.
This requires cancelling the "secondary" errors when they're not
emitted, to prevent panics due to unconsumed `DiagnosticBuilder`s.
2024-01-11 16:55:10 +11:00
Nicholas Nethercote
2668270dfb Stop using DiagnosticBuilder::buffer in WritebackCx. 2024-01-11 16:55:10 +11:00
Nicholas Nethercote
d5aafb846b Use struct_fatal in new_parser_from_file.
It's a little more concise, and the standard way to do it.
2024-01-11 16:55:10 +11:00
Nicholas Nethercote
f5c0cd0bd1 Inline and remove three functions.
Each of these has a single call site: `source_file_to_parser`,
`try_file_to_source_file`, `file_to_source_file`. Having them separate
just makes the code longer and harder to read.

Also, `maybe_file_to_stream` doesn't need to be `pub`.
2024-01-11 16:55:10 +11:00
Nicholas Nethercote
552bed8048 Remove DiagnosticBuilder::into_diagnostic from -Ztreat-err-as-bug consideration.
It seems very wrong to have a `-Ztreat-err-as-bug` check here before the
error is even emitted.

Once that's done:
- `into_diagnostic` is infallible, so its return type doesn't need the
  `Option`;
- the `&'a DiagCtxt` also isn't needed, because only one callsite uses
  it, and it already have access to it via `self.dcx`;
- the comments about dcx disabling buffering are no longer true, this is
  unconditional now;
- and the `debug!` seems unnecessary... the comment greatly overstates
  its importance because few diagnostics come through `into_diagnostic`,
  and `-Ztrack-diagnostics` exists anyway.
2024-01-11 16:55:10 +11:00
Nicholas Nethercote
a0f5431e23 Move code around.
No point computing `warnings` and `errors` if we're going to return
early before they're used.
2024-01-11 16:55:10 +11:00
Nicholas Nethercote
2aac288c18 Use the right level with -Ztreat-err-as-bug.
Errors in `DiagCtxtInner::emit_diagnostic` are never set to
`Level::Bug`, because the condition never succeeds, because
`self.treat_err_as_bug()` is called *before* the error counts are
incremented.

This commit switches to `self.treat_next_err_as_bug()`, fixing the
problem. This changes the error message output to actually say "internal
compiler error".
2024-01-11 16:55:10 +11:00
Nicholas Nethercote
f0a3684c1e Inline and remove DiagCtxtInner::bump_{lint_err,err}_count.
They have one and two call sites respectively, and they just make the
code harder to read.
2024-01-11 16:54:22 +11:00
Zalathar
124fff0777 coverage: Add enums to accommodate other kinds of coverage mappings 2024-01-11 16:43:12 +11:00
Zalathar
c5932182ad coverage: Store extracted spans as a flat list of mappings
This is less elegant in some ways, since we no longer visit a BCB's spans as a
batch, but will make it much easier to add support for other kinds of coverage
mapping regions (e.g. branch regions or gap regions).
2024-01-11 16:43:01 +11:00
Zalathar
8f98b54a7e coverage: Extract helper function term_for_bcb 2024-01-11 16:07:38 +11:00
bors
3a6bf351a3 Auto merge of #119677 - cjgillot:early-cfg-opt, r=oli-obk
Reorder early post-inlining passes.

`RemoveZsts`, `RemoveUnneededDrops` and `UninhabitedEnumBranching` only depend on types, so they should be executed together early after MIR inlining introduces those types.

This does not change the end-result, but this makes the pipeline a bit more consistent.
2024-01-11 04:09:07 +00:00