Commit graph

15070 commits

Author SHA1 Message Date
Matthias Krüger
3ccaceff73
Rollup merge of #133405 - Zalathar:style-file, r=jieyouxu
tidy: Distinguish between two different meanings of "style file"

This file contains code that uses “style file” to mean “CSS file”, and other code that uses “style file” to mean “this file, which implements the style checker”.

That's very confusing, so it's easier to just say *CSS file* or *this file* as appropriate.

No functional change.
2024-11-24 11:08:21 +01:00
Matthias Krüger
5d1c99275d
Rollup merge of #133371 - RalfJung:is_trivially_const_drop, r=compiler-errors
remove is_trivially_const_drop

I'm not sure this still brings any perf benefits, so let's benchmark this.

r? `@compiler-errors`
2024-11-24 11:08:19 +01:00
Zalathar
2134a7e363 tidy: Distinguish between two different meanings of "style file" 2024-11-24 14:45:17 +11:00
bors
e48241b5d1 Auto merge of #131859 - chriskrycho:update-trpl, r=onur-ozkan
Update TRPL to add new Chapter 17: Async and Await

- Add support to `rustbook` to pass through the `-L`/`--library-path` flag to `mdbook` so that references to the `trpl` crate
- Build the `trpl` crate as part of the book tests. Make it straightforward to add other such book dependencies in the future if needed by implementing that in a fairly general way.
- Update the submodule for the book to pull in the new chapter on async and await, as well as a number of other fixes. This will happen organically/automatically in a week, too, but this lets me group this change with the next one:
- Update the compiler messages which reference the existing chapters 17–20, which are now chapters 18-21. There are only two, both previously referencing chapter 18.
- Update the UI tests which reference the compiler message outputs.
2024-11-23 23:26:19 +00:00
bors
386a7c7ae2 Auto merge of #133242 - lcnr:questionable-uwu, r=compiler-errors,BoxyUwU
finish `Reveal` removal

After #133212 changed the `TypingMode` to be the only source of truth, this entirely rips out `Reveal`.

cc #132279

r? `@compiler-errors`
2024-11-23 18:01:21 +00:00
Chris Krycho
559a2d21b7
rustbook: fix two small typos 2024-11-23 08:57:25 -07:00
Chris Krycho
f7409e8afb
Add support for --library-path to rustbook test
This makes it possible to test an mdbook which has dependencies other
than the direct crate for the book itself, e.g. the `trpl` crate used in
_The Rust Programming Language_.
2024-11-23 08:57:24 -07:00
lcnr
319843d8cd no more Reveal :( 2024-11-23 13:52:54 +01:00
bors
ff1737bb00 Auto merge of #132994 - clubby789:cc-bisect, r=Kobzol
Update `cc` + bump bootstrap deps

https://github.com/rust-lang/rust/pull/132556#issuecomment-2471741435

note: The compiler/library/tools cc bumps have been tested with a try job, the bootstrap changes have not
2024-11-23 12:15:39 +00:00
bors
6e1c11591f Auto merge of #132915 - veluca93:unsafe-fields, r=jswrenn
Implement the unsafe-fields RFC.

RFC: rust-lang/rfcs#3458

Tracking:

- https://github.com/rust-lang/rust/issues/132922

r? jswrenn
2024-11-23 07:47:52 +00:00
Ralf Jung
bd00de7123 remove is_trivially_const_drop 2024-11-23 08:41:06 +01:00
Michael Goulet
ef433a3d4e
Rollup merge of #133208 - ferrocene:split-copyright-html, r=Kobzol
generate-copyright: Now generates a library file too.

We only run reuse once, so the output has to be filtered to find only the files that are relevant to the library tree.

Outputs COPYRIGHT.html and COPYRIGHT-library.html.

The license-metadata.json file is also now in the tree. We need a CI tool to check that it's correct.

r? kobzol

Remaining steps:

* [ ] Teach CI to double-check the license-metadata.json file is correct
* [ ] Add the COPYRIGHT.html and COPYRIGHT-license.html to the releases
2024-11-22 21:07:40 -05:00
许杰友 Jieyou Xu (Joe)
71440da2b3
Rollup merge of #133311 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-11-22 20:32:35 +08:00
Jonathan Pallant
2932833414
generate-copyright: Fixup comment for get_metadata_and_notices. 2024-11-22 10:14:40 +00:00
Luca Versari
9022bb2d6f Implement the unsafe-fields RFC.
Co-Authored-By: Jacob Pratt <jacob@jhpratt.dev>
2024-11-21 19:32:07 +01:00
bors
717f5df2c3 Auto merge of #132629 - nnethercote:124141-preliminaries, r=petrochenkov
#124141 preliminaries

Preliminary changes required to start removing `Nonterminal` (https://github.com/rust-lang/rust/pull/124141).

r? `@petrochenkov`
2024-11-21 10:57:22 +00:00
Jonathan Pallant
9dfc682834
generate-copyright: Now generates a library file too.
We only run reuse once, so the output has to be filtered to find only the files that are relevant to the library tree.

Outputs build/COPYRIGHT.html and build/COPYRIGHT-library.html.
2024-11-21 10:01:21 +00:00
Ralf Jung
ec6fe118d9 fmt 2024-11-21 07:59:07 +01:00
Ralf Jung
f5fd967283 Merge from rustc 2024-11-21 07:58:50 +01:00
Ralf Jung
09ef8ece28 Preparing for merge from rustc 2024-11-21 07:45:20 +01:00
Ralf Jung
9e720acc34 trophy case: add RwLock::downgrade bug 2024-11-20 22:28:48 +01:00
Nicholas Nethercote
afe238f66f Introduce InvisibleOrigin on invisible delimiters.
It's not used meaningfully yet, but will be needed to get rid of
interpolated tokens.
2024-11-21 08:16:54 +11:00
Ralf Jung
e6946883ec
Merge pull request #4026 from eduardosm/soft-sqrt
miri: implement square root without relying on host floats
2024-11-20 19:34:47 +00:00
Eduardo Sánchez Muñoz
8a5c187948 miri: implement square root without relying on host floats 2024-11-20 20:01:57 +01:00
bors
3fee0f12e4 Auto merge of #131326 - dingxiangfei2009:issue-130836-attempt-2, r=nikomatsakis
Reduce false positives of tail-expr-drop-order from consumed values (attempt #2)

r? `@nikomatsakis`

Tracked by #123739.

Related to #129864 but not replacing, yet.

Related to #130836.

This is an implementation of the approach suggested in the [Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/temporary.20drop.20order.20changes). A new MIR statement `BackwardsIncompatibleDrop` is added to the MIR syntax. The lint now works by inspecting possibly live move paths before at the `BackwardsIncompatibleDrop` location and the actual drop under the current edition, which should be one before Edition 2024 in practice.
2024-11-20 18:51:54 +00:00
bors
a1f2999536 Auto merge of #133251 - matthiaskrgr:rollup-gjeis3q, r=matthiaskrgr
Rollup of 3 pull requests

Successful merges:

 - #131904 (Stabilize const_pin_2)
 - #133239 (Fix LLVM target triple for `x86_64-win7-windows-msvc`)
 - #133241 (interpret: make typing_env field private)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-11-20 15:49:54 +00:00
Ding Xiang Fei
297b618944
reduce false positives of tail-expr-drop-order from consumed values
take 2

open up coroutines

tweak the wordings

the lint works up until 2021

We were missing one case, for ADTs, which was
causing `Result` to yield incorrect results.

only include field spans with significant types

deduplicate and eliminate field spans

switch to emit spans to impl Drops

Co-authored-by: Niko Matsakis <nikomat@amazon.com>

collect drops instead of taking liveness diff

apply some suggestions and add explantory notes

small fix on the cache

let the query recurse through coroutine

new suggestion format with extracted variable name

fine-tune the drop span and messages

bugfix on runtime borrows

tweak message wording

filter out ecosystem types earlier

apply suggestions

clippy

check lint level at session level

further restrict applicability of the lint

translate bid into nop for stable mir

detect cycle in type structure
2024-11-20 20:53:11 +08:00
bors
bfe809d93c Auto merge of #133227 - weihanglo:update-cargo, r=weihanglo
Update cargo

5 commits in 69e595908e2c420e7f0d1be34e6c5b984c8cfb84..66221abdeca2002d318fde6efff516aab091df0e
2024-11-16 01:26:11 +0000 to 2024-11-19 21:30:02 +0000
- Docs for optional registry JSON fields (rust-lang/cargo#14839)
- Allow registries to omit empty/default fields in JSON (rust-lang/cargo#14838)
- docs(unstable): Link to -Zwarnings issue, tracking issue (rust-lang/cargo#14836)
- fix(): error context for git_fetch refspec not found (rust-lang/cargo#14806)
- you we distinction (rust-lang/cargo#14829)
2024-11-20 12:32:55 +00:00
Ralf Jung
d04088fa36 interpret: make typing_env field private 2024-11-20 11:05:53 +01:00
bors
70e814bd9e Auto merge of #133212 - lcnr:questionable-uwu, r=compiler-errors
continue `ParamEnv` to `TypingEnv` transition

cc #132279

r? `@compiler-errors`
2024-11-20 06:22:01 +00:00
The Miri Cronjob Bot
13dbc8443e Merge from rustc 2024-11-20 05:08:25 +00:00
The Miri Cronjob Bot
2b751f621c Preparing for merge from rustc 2024-11-20 05:00:09 +00:00
Weihang Lo
00903cf9c9
Update cargo 2024-11-19 21:41:31 -05:00
Matthias Krüger
841243f319
Rollup merge of #133201 - nnethercote:rm-TokenKind-InvalidPrefix, r=compiler-errors
Remove `TokenKind::InvalidPrefix`

It's not needed. Best reviewed one commit at a time.

r? `@estebank`
2024-11-19 22:24:47 +01:00
lcnr
7a90e84f4d InterpCx store TypingEnv instead of a ParamEnv 2024-11-19 21:36:23 +01:00
lcnr
d667dd5677 remove TypingMode::from_param_env in clippy 2024-11-19 19:31:02 +01:00
lcnr
948cec0fad move fn is_item_raw to TypingEnv 2024-11-19 18:06:20 +01:00
Ralf Jung
4520ff84e1
Merge pull request #4035 from discord9/master
refactor: refine thread variant for windows
2024-11-19 09:36:07 +00:00
discord9
cecf2b3eae refactor: refine thread variant for windows 2024-11-19 16:38:00 +08:00
Matthias Krüger
47200547f3
Rollup merge of #132577 - Urgau:check-cfg-report-extern-macro, r=petrochenkov
Report the `unexpected_cfgs` lint in external macros

This PR marks the `unexpected_cfgs` lint as being reportable in external macros, as it's probably not the intention of the macro author to leave ineffective cfgs in the users code.

Fixes #132572

try-job: aarch64-gnu-debug
2024-11-19 09:19:19 +01:00
Nicholas Nethercote
e9a0c3c98c Remove TokenKind::InvalidPrefix.
It was added in #123752 to handle some cases involving emoji, but it
isn't necessary because it's always treated the same as
`TokenKind::InvalidIdent`. This commit removes it, which makes things a
little simpler.
2024-11-19 18:06:22 +11:00
The Miri Cronjob Bot
39a9512478 fmt 2024-11-19 05:04:30 +00:00
The Miri Cronjob Bot
cfc5961ca3 Merge from rustc 2024-11-19 05:03:17 +00:00
The Miri Cronjob Bot
5e69099569 Preparing for merge from rustc 2024-11-19 04:55:19 +00:00
Oli Scherer
087f34a22f
Merge pull request #4039 from RalfJung/root-dir
use -Zroot-dir instead of --remap-path-prefix for diagnostic dir handling
2024-11-19 01:34:06 +00:00
bors
b71fb5edc0 Auto merge of #132460 - lcnr:questionable-uwu, r=compiler-errors
Use `TypingMode` throughout the compiler instead of `ParamEnv`

Hopefully the biggest single PR as part of https://github.com/rust-lang/types-team/issues/128.

## `infcx.typing_env` while defining opaque types

I don't know how'll be able to correctly handle opaque types when using something taking a `TypingEnv` while defining opaque types. To correctly handle the opaques we need to be able to pass in the current `opaque_type_storage` and return constraints, i.e. we need to use a proper canonical query. We should migrate all the queries used during HIR typeck and borrowck where this matters to proper canonical queries. This is

## `layout_of` and `Reveal::All`

We convert the `ParamEnv` to `Reveal::All` right at the start of the `layout_of` query, so I've changed callers of `layout_of` to already use a post analysis `TypingEnv` when encountering it.

ca87b535a0/compiler/rustc_ty_utils/src/layout.rs (L51)

## `Ty::is_[unpin|sized|whatever]`

I haven't migrated `fn is_item_raw` to use `TypingEnv`, will do so in a followup PR, this should significantly reduce the amount of `typing_env.param_env`. At some point there will probably be zero such uses as using the type system while ignoring the `typing_mode` is incorrect.

## `MirPhase` and phase-transitions

When inside of a MIR-body, we can mostly use its `MirPhase` to figure out the right `typing_mode`. This does not work during phase transitions, most notably when transitioning from `Analysis` to `Runtime`:

dae7ac133b/compiler/rustc_mir_transform/src/lib.rs (L606-L625)

All these passes still run with `MirPhase::Analysis`, but we should only use `Reveal::All` once we're run the `RevealAll` pass. This required me to manually construct the right `TypingEnv` in all these passes. Given that it feels somewhat easy to accidentally miss this going forward, I would maybe like to change `Body::phase` to an `Option` and replace it at the start of phase transitions. This then makes it clear that the MIR is currently in a weird state.

r? `@ghost`
2024-11-18 21:07:05 +00:00
Ralf Jung
aada9efde8 use -Zroot-dir instead of --remap-path-prefix for diagnostic dir handling 2024-11-18 21:01:11 +01:00
Urgau
79c8e64162 Update xshell and xshell-macros to v0.2.7 2024-11-18 18:52:27 +01:00
lcnr
9cba14b95b use TypingEnv when no infcx is available
the behavior of the type system not only depends on the current
assumptions, but also the currentnphase of the compiler. This is
mostly necessary as we need to decide whether and how to reveal
opaque types. We track this via the `TypingMode`.
2024-11-18 10:38:56 +01:00
Jacob Pratt
194c76ef0a
Rollup merge of #133158 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2024-11-18 02:24:36 -05:00