235316 Commits

Author SHA1 Message Date
Oli Scherer
238dc2828e Prevent promotion of const fn calls in inline consts 2023-09-21 09:00:22 +00:00
Oli Scherer
9c762b58ba Prevent promotion of const fn calls in inline consts 2023-09-21 09:00:22 +00:00
Oli Scherer
44e199bf30 Add regression test 2023-09-21 08:50:08 +00:00
Zalathar
041a232b62 coverage: Don't bother renumbering expressions on the Rust side
The LLVM API that we use to encode coverage mappings already has its own code
for removing unused coverage expressions and renumbering the rest.

This lets us get rid of our own complex renumbering code, making it easier to
change our coverage code in other ways.
2023-09-21 18:32:49 +10:00
Zalathar
527c629cd9 coverage: Explicitly simplify coverage expressions in codegen
After coverage instrumentation and MIR transformations, we can sometimes end up
with coverage expressions that always have a value of zero. Any expression
operand that refers to an always-zero expression can be replaced with a literal
`Operand::Zero`, making the emitted coverage mapping data smaller and simpler.

This simplification step is mostly redundant with the simplifications performed
inline in `expressions_with_regions`, except that it does a slightly more
thorough job in some cases (because it checks for always-zero expressions
*after* other simplifications).

However, adding this simplification step will then let us greatly simplify that
code, without affecting the quality of the emitted coverage maps.
2023-09-21 18:32:49 +10:00
Zalathar
659575aade coverage: Make the zero counter a constant 2023-09-21 18:32:49 +10:00
Urgau
f156d3bc57 Improve invalid UTF-8 lint by finding the expression initializer 2023-09-21 10:16:29 +02:00
bors
d2db689e1e Auto merge of #3069 - rust-lang:rustup-2023-09-21, r=RalfJung
Automatic sync from rustc
2023-09-21 08:01:45 +00:00
bors
e4a361a48a Auto merge of #115996 - lcnr:intercrate_ambiguity_causes-uwu, r=compiler-errors
implement `intercrate_ambiguity_causes` in the new solver

I added some comments but this is still somewhat of a mess. I think we should for the most part be able to treat all of this as a black box, so I can accept that this code isn't too great.

I also believe that some of the weirdness here is unavoidable, as proof trees - and their visitor - hide semantically relevant information, so they cannot perfectly represent the actual solver behavior.

There are some known bugs here when testing with `./x.py test tests/ui --bless -- --target-rustcflags -Ztrait-solver=next-coherence`. While I haven't diagnosed them all in detail I believe we are able to handle them all separately

- `structurally_normalize` currently does not normalize opaque types, resulting in divergence between the solver internal `trait_ref_is_knowable` and the one when computing intercrate ambiguity causes.
- we don't add an `intercrate_ambiguity_cause` for reserved impls
- we should `deeply_normalize` the trait ref before printing it, that requires a "best effort" version of `deeply_normalize`

r? `@compiler-errors`
2023-09-21 07:58:28 +00:00
lcnr
614760f612 review 2023-09-21 08:57:47 +02:00
lcnr
8167a25e4e w 2023-09-21 08:44:12 +02:00
Ralf Jung
64708fbf9e deprecate -Zmiri-disable-abi-check 2023-09-21 08:43:56 +02:00
lcnr
8e139eefaf slight refactor, add comment 2023-09-21 08:40:36 +02:00
Ralf Jung
6c73f254b9 avoid talking about inverses 2023-09-21 08:34:05 +02:00
Ralf Jung
14625f5b3e consistent wording 2023-09-21 08:27:10 +02:00
Ralf Jung
39b53dc204 documentation tweaks 2023-09-21 08:27:09 +02:00
Ralf Jung
62bdb1a6e0 offset_from: docs improvements 2023-09-21 08:27:09 +02:00
lcnr
8024c69c29 HACK: avoid hang in structurally_normalize 2023-09-21 08:17:58 +02:00
lcnr
8eade3aa71 update tests 2023-09-21 08:17:58 +02:00
lcnr
de53877f8b proof trees: use for intercrate_ambiguity_causes 2023-09-21 08:17:58 +02:00
Ralf Jung
2ea6ac5673 rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
Ralf Jung
c94410c145 rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
bors
0a689c1be8 Auto merge of #116009 - compiler-errors:fulldeps-fix, r=Kobzol
Fix `ui-fulldeps --stage=1` with `-Zignore-directory-in-diagnostics-source-blocks`

Fixes #115977

Also makes sure this doesn't happen again by running `ui-fulldeps --stage=1` in CI
2023-09-21 06:11:48 +00:00
bors
70f3d3e6ad Auto merge of #3070 - RalfJung:no-no-merges, r=RalfJung
disable no-merges check for now

It leads to false warnings on sync PRs until https://github.com/rust-lang/triagebot/pull/1720 lands.
2023-09-21 06:06:36 +00:00
Ralf Jung
ed8fbcb059 fix clippy lints 2023-09-21 08:03:45 +02:00
Ralf Jung
e018f49d45 remove atty dependency by updating colored 2023-09-21 08:02:58 +02:00
Ralf Jung
a11b1d8b26 disable no-merges check for now 2023-09-21 07:49:38 +02:00
Ralf Jung
96a85d67fd update lockfile 2023-09-21 07:46:41 +02:00
The Miri Conjob Bot
e6cd29d06e fmt 2023-09-21 05:40:21 +00:00
The Miri Conjob Bot
de5d1648b8 Merge from rustc 2023-09-21 05:37:42 +00:00
The Miri Conjob Bot
4b865b7d1a Preparing for merge from rustc 2023-09-21 05:28:08 +00:00
Ralf Jung
0eff07b748 try to avoid some layout_of calls 2023-09-21 07:26:16 +02:00
David Tolnay
3dcc8fcab5
Delete obsolete --disable-per-crate-search rustdoc flag 2023-09-20 22:09:48 -07:00
Michael Goulet
292588e319 Make ui-fulldeps --stage=1 builds in CI 2023-09-21 04:11:57 +00:00
Michael Goulet
bb6a46592f Fix ui-fulldeps --stage=1 with -Zignore-directory-in-diagnostics-source-blocks 2023-09-21 04:11:53 +00:00
bors
4fda889bf8 Auto merge of #115549 - saethlin:include-bytes-resilient, r=jackh726
Fall back to the unoptimized implementation in read_binary_file if File::metadata lies

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

r? `@jackh726` because you approved the previous PR
2023-09-21 02:50:54 +00:00
bors
cbce15c617 Auto merge of #116013 - matthiaskrgr:rollup-mv5i4fd, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #114394 (style-guide: Document formatting of `as` casts (mostly like a binary operator))
 - #115990 (Allow anyone to set llvm-fixed-upstream)
 - #116008 (Rename BoxMeUp to PanicPayload.)
 - #116011 (Update browser-ui-test version to 0.16.10)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-09-21 01:02:00 +00:00
Ben Kimock
5f33647fb3 Add unit tests based on files that return odd sizes to stat 2023-09-20 21:01:13 -04:00
bors
c55669513a Auto merge of #11522 - y21:redundant_guards_pat_lhs, r=giraffate
[`redundant_guards`]: lint if the pattern is on the left side

A tiny improvement to the `redundant_guards` lint. There's no associated issue for this, just noticed it while going through the code.
Right now it warns on `Some(x) if x == 2` and suggests `Some(2)`, but it didn't do that for `Some(x) if 2 == x` (i.e. when the local is on the right side and the pattern on the left side).

changelog: [`redundant_guards`]: also lint if the pattern is on the left side
2023-09-20 23:57:25 +00:00
Matthias Krüger
156d2e2746
Rollup merge of #116011 - GuillaumeGomez:update-browser-ui, r=notriddle
Update browser-ui-test version to 0.16.10

Following https://github.com/GuillaumeGomez/browser-UI-test/pull/539, it contains generated JS improvements and also a fix in a diagnostic.

r? `@notriddle`
2023-09-21 00:11:37 +02:00
Matthias Krüger
6bcae4c93e
Rollup merge of #116008 - m-ou-se:boxmeup, r=oli-obk
Rename BoxMeUp to PanicPayload.

"BoxMeUp" is not very clear. Let's rename that to a description of what it actually represents: a panic payload.

This PR also renames the structs that implement this trait to have more descriptive names.

Part of https://github.com/rust-lang/rust/issues/116005

r? `@oli-obk`
2023-09-21 00:11:37 +02:00
Matthias Krüger
946a7209cb
Rollup merge of #115990 - nikic:triagebot-llvm-fixed-upstream, r=Nilstrieb
Allow anyone to set llvm-fixed-upstream

Allow llvm-* to be set by unauthenticated users, which is currently llvm-main and llvm-fixed-upstream.
2023-09-21 00:11:36 +02:00
Matthias Krüger
47277ab547
Rollup merge of #114394 - joshtriplett:style-guide-as, r=calebcartwright
style-guide: Document formatting of `as` casts (mostly like a binary operator)

`as` casts currently get formatted like a binary operator, except that
the second line can stack several `as` casts rather than breaking them
each onto their own line. Document this.

As far as I can tell (cc `@calebcartwright` for verification), this is not a 2024 edition change, it just documents current behavior.
2023-09-21 00:11:35 +02:00
bors
3223b0b5e8 Auto merge of #115542 - saethlin:fileencoder-is-bufwriter, r=WaffleLapkin
Simplify/Optimize FileEncoder

FileEncoder is basically a BufWriter except that it exposes access to the not-written-to-yet region of the buffer so that some users can write directly to the buffer. This strategy is awesome because it lets us avoid calling memcpy for small copies, but the previous strategy was based on the writer accessing a `&mut [MaybeUninit<u8>; N]` and returning a `&[u8]` which is an API which currently mandates the use of unsafe code, making that interface in general not that appealing.

So this PR cleans up the FileEncoder implementation and builds on that general idea of direct buffer access in order to prevent `memcpy` calls in a few key places when encoding the dep graph and rmeta tables. The interface used here is now 100% safe, but with the caveat that internally we need to avoid trusting the number of bytes that the provided function claims to have written.

The original primary objective of this PR was to clean up the FileEncoder implementation so that the fix for the following issues would be easy to implement. The fix for these issues is to correctly update self.buffered even when writes fail, which I think it's easy to verify manually is now done, because all the FileEncoder methods are small.

Fixes https://github.com/rust-lang/rust/issues/115298
Fixes https://github.com/rust-lang/rust/issues/114671
Fixes https://github.com/rust-lang/rust/issues/114045
Fixes https://github.com/rust-lang/rust/issues/108100
Fixes https://github.com/rust-lang/rust/issues/106787
2023-09-20 21:47:54 +00:00
Ben Kimock
6cee6b0bde PR feedback 2023-09-20 16:49:13 -04:00
Mara Bos
667bba46b0 Fix typo. 2023-09-20 22:37:39 +02:00
Ralf Jung
23fd2860fa stronger consistency check in ImmTy::from_immediate 2023-09-20 22:28:46 +02:00
Ralf Jung
bdbf545f42 interpret: less debug-printing of types 2023-09-20 22:25:42 +02:00
Guillaume Gomez
4ce5a002c9 Update browser-ui-test version to 0.16.10 2023-09-20 22:06:56 +02:00
Ralf Jung
da08a3f40c interpret: more consistently use ImmTy in operators and casts 2023-09-20 21:57:54 +02:00