Commit graph

237086 commits

Author SHA1 Message Date
Oli Scherer
d55487d7e9
Use two slice expressions to save on an offset repetition 2023-10-26 12:32:47 +02:00
Kirby Linvill
bac7d5b52c
Add test for smir locals 2023-10-26 00:22:56 +01:00
Kirby Linvill
4b23bd4734
Update Place and Operand to take slices
The latest locals() method in stable MIR returns slices instead of vecs.
This commit also includes fixes to the existing tests that previously
referenced the private locals field.
2023-10-26 00:21:28 +01:00
Kirby Linvill
fe4dfb814b
Rename internal_locals to inner_locals
The word internal has connotations about information that's not exposed.
It's more accurate to say that the remaining locals apply only to the
inner part of the function, so I'm renaming them to inner locals.
2023-10-26 00:18:42 +01:00
Kirby Linvill
39b293fb5a
Add a public API to get all body locals
This is particularly helpful for the ui tests, but also could be helpful
for Stable MIR users who just want all the locals without needing to
concatenate responses
2023-10-25 22:18:58 +01:00
Kirby Linvill
372c533532
Make locals field private 2023-10-25 22:15:47 +01:00
Kirby Linvill
f4d80a5f09
Add public API to retrieve internal locals 2023-10-25 22:15:47 +01:00
Kirby Linvill
93d1b3e92a
Replace arg_count in public API with return/arg getters
This commit hides the arg_count field in Body and instead exposes more
stable and user-friendly methods to get the return and argument locals.
As a result, Body instances must now be constructed using the `new`
function.
2023-10-25 22:15:47 +01:00
Kirby Linvill
e4c41b07f0
Add arg_count field to Body in Stable MIR
This field allows SMIR consumers to identify which locals correspond to
argument locals. It simply exposes the arg_count field from the MIR
representation.
2023-10-25 22:15:47 +01:00
bors
cf226e93dc Auto merge of #117172 - matthiaskrgr:rollup-s56bm2f, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #116801 (Add test for 113326)
 - #117133 (Merge `impl_wf_inference` (`check_mod_impl_wf`) check into coherence checking)
 - #117136 (Intern `LocalDefId` list from `opaque_types_defined_by` query)
 - #117150 (Update cargo)
 - #117158 (Update THIR unused_unsafe lint)
 - #117160 (Fix typo in test comment)
 - #117168 (Fix some coroutine sentences that don't make sense anymore.)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-10-25 17:35:01 +00:00
Matthias Krüger
a7d05a6dfa
Rollup merge of #117168 - oli-obk:coroutine_cleanups, r=JohnTitor
Fix some coroutine sentences that don't make sense anymore.

These happened during the `generator` -> `coroutine` rename.

Found thanks to `@pthariensflame` for their thorough review of the `generator` -> `coroutine` rename https://github.com/rust-lang/rust/pull/116958#issuecomment-1777756937
2023-10-25 17:40:32 +02:00
Matthias Krüger
dffed66456
Rollup merge of #117160 - cuishuang:master, r=lqd
Fix typo in test comment
2023-10-25 17:40:31 +02:00
Matthias Krüger
105efbb4b2
Rollup merge of #117158 - matthewjasper:thir-unused-unsafe, r=oli-obk
Update THIR unused_unsafe lint

Updates THIR unsafeck behaviour to match the changes from #93678
2023-10-25 17:40:31 +02:00
Matthias Krüger
136f9dbe84
Rollup merge of #117150 - weihanglo:update-cargo, r=weihanglo
Update cargo

2 commits in d2f6a048529eb8e9ebc55d793abd63456c98fac2..df3509237935f9418351b77803df7bc05c009b3d
2023-10-20 18:25:30 +0000 to 2023-10-24 23:09:01 +0000
- Fix unused_imports warning (rust-lang/cargo#12876)
- Warn about crate name's format when creating new crate (rust-lang/cargo#12766)

r? ghost
2023-10-25 17:40:30 +02:00
Matthias Krüger
acc68e90bc
Rollup merge of #117136 - compiler-errors:defid-list, r=oli-obk
Intern `LocalDefId` list from `opaque_types_defined_by` query

r? oli-obk
2023-10-25 17:40:29 +02:00
Matthias Krüger
96074bec97
Rollup merge of #117133 - compiler-errors:coherence-constrained, r=oli-obk
Merge `impl_wf_inference` (`check_mod_impl_wf`) check into coherence checking

Problem here is that we call `collect_impl_trait_in_trait_types` when checking `check_mod_impl_wf` which is performed before coherence. Due to the `tcx.sess.track_errors`, since we end up reporting an error, we never actually proceed to coherence checking, where we would be emitting a more useful impl overlap error.

This change means that we may report more errors in some cases, but can at least proceed far enough to leave a useful message for overlapping traits with RPITITs in them.

Fixes #116982

r? types
2023-10-25 17:40:29 +02:00
Matthias Krüger
75efc4fd9e
Rollup merge of #116801 - clubby789:issue-113326-test, r=compiler-errors
Add test for 113326

Closes #113326
Bisecting points to #113636 as the fix
2023-10-25 17:40:28 +02:00
bors
964ff0125b Auto merge of #117165 - RalfJung:miri, r=RalfJung
Miri subtree update

r? `@ghost`
2023-10-25 15:34:13 +00:00
Oli Scherer
1be0033457 Fix some coroutine sentences that don't make sense anymore.
These happened during the `generator` -> `coroutine` rename.
2023-10-25 14:27:00 +00:00
bors
b66fe58f68 Auto merge of #117113 - celinval:smir-stable-ty, r=oli-obk
Remove fold code and add `Const::internal()` to StableMIR

We are not planning to support user generated constant in the foreseeable future, so we are cleaning up the fold logic and user created type for now. Users should use `Instance::resolve` in order to trigger monomorphization.

The Instance::resolve was however incomplete, since we weren't handling internalizing constants yet. Thus, I added that.

I decided to keep the `Const` fields private in case we decide to translate them lazily.
2023-10-25 13:19:54 +00:00
cui fliter
11debd778a Fix problematic comment
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-10-25 19:14:03 +08:00
bors
eb03d40a9c Auto merge of #117102 - devnexen:dfbsd_stack_overflow_upd, r=thomcc
stack_overflow: get_stackp using MAP_STACK flag on dragonflybsd too.
2023-10-25 11:01:24 +00:00
Matthew Jasper
dc3d428a8a Make THIR unused_unsafe lint consistent with MIR
Updates THIR behavior to match the changes from #93678
2023-10-25 10:10:13 +00:00
bors
c2ef35161f Auto merge of #117076 - oli-obk:privacy_visitor_types, r=petrochenkov
Refactor type visitor walking

r? `@petrochenkov`

pulling out the uncontroversial parts of https://github.com/rust-lang/rust/pull/113671
2023-10-25 08:54:09 +00:00
bors
51ae1fe849 Auto merge of #3141 - rust-lang:rustup-2023-10-25, r=RalfJung
Automatic Rustup
2023-10-25 08:04:36 +00:00
Ralf Jung
19c4fa60ea CLOCK_UPTIME_RAW exists on all macos targets, not just the ARM ones 2023-10-25 10:03:09 +02:00
bors
c716f180e8 Auto merge of #116236 - dtolnay:builtinmacrocomment, r=cjgillot
Modernize rustc_builtin_macros generics helpers

- Rustfmt-compatible formatting for the code snippets in comments
- Eliminate an _"Extra scope required"_ obsoleted by NLL
2023-10-25 06:57:37 +00:00
The Miri Conjob Bot
3751fb09c3 Merge from rustc 2023-10-25 05:40:45 +00:00
bors
9c793e18dd Auto merge of #3140 - RalfJung:gamma, r=RalfJung
add some more gamma function tests
2023-10-25 05:32:41 +00:00
The Miri Conjob Bot
c612ba8e29 Preparing for merge from rustc 2023-10-25 05:31:14 +00:00
Ralf Jung
e83c8c1c2b add some more gamma function tests 2023-10-25 07:30:27 +02:00
bors
98108dc26c Auto merge of #116993 - compiler-errors:clause-kind, r=jackh726
Uplift `ClauseKind` and `PredicateKind` into `rustc_type_ir`

Uplift `ClauseKind` and `PredicateKind` into `rustc_type_ir`.

Blocked on #116951

r? `@ghost`
2023-10-25 05:02:04 +00:00
bors
2e4e2a8f28 Auto merge of #117139 - compiler-errors:vid-lifetimes, r=BoxyUwU
Get rid of `'tcx` lifetime on `ConstVid`, `EffectVid`

These are simply newtyped numbers, so don't really have a reason (per se) to have a lifetime -- `TyVid` and `RegionVid` do not, for example.

The only consequence of this is that we need to use a new key type for `UnifyKey` that mentions `'tcx`. This is already done for `RegionVid`, with `RegionVidKey<'tcx>`, but this `UnifyKey` trait implementation may have been the original reason to give `ConstVid` a lifetime. See the changes to `compiler/rustc_middle/src/infer/unify_key.rs` specifically.

I consider the code cleaner this way, though -- we removed quite a few unnecessary `'tcx` in the process. This also makes it easier to uplift these two ids to `rustc_type_ir`, which I plan on doing in a follow-up PR.

r? `@BoxyUwU`
2023-10-25 02:01:04 +00:00
Weihang Lo
fd7bbc2aa5
Update cargo 2023-10-24 20:51:13 -04:00
bors
848a387967 Auto merge of #116482 - matthewjasper:thir-unsafeck-inline-constants, r=b-naber
Fix inline const pattern unsafety checking in THIR

Fix THIR unsafety checking of inline constants.
- Steal THIR in THIR unsafety checking (if enabled) instead of MIR lowering.
- Represent inline constants in THIR patterns.
2023-10-25 00:03:57 +00:00
Celina G. Val
17f6df9c63 Use IndexMap for handling stable Ty 2023-10-24 15:37:43 -07:00
Celina G. Val
3f60165d27 Remove fold code and add Const::internal()
We are not planning to support user generated constant in the
foreseeable future, so we are removing the Fold logic for now in
favor of the Instance::resolve logic.

The Instance::resolve was however incomplete, since we weren't handling
internalizing constants yet. Thus, I added that.

I decided to keep the Const fields private in case we decide to
translate them lazily.
2023-10-24 14:50:58 -07:00
bors
df871fbf05 Auto merge of #115796 - cjgillot:const-prop-rvalue, r=oli-obk
Generate aggregate constants in DataflowConstProp.
2023-10-24 21:47:53 +00:00
Michael Goulet
a986ab4d4d Get rid of 'tcx on ConstVid, EffectVid 2023-10-24 20:13:36 +00:00
bors
151256bd4b Auto merge of #117135 - matthiaskrgr:rollup-zdh18i6, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #116094 (Introduce `-C instrument-coverage=branch` to gate branch coverage)
 - #116396 (Migrate diagnostics in `rustc_hir_analysis/src/coherence/orphan.rs`)
 - #116714 (Derive `Ord`, `PartialOrd` and `Hash` for `SocketAddr*`)
 - #116792 (Avoid unnecessary renumbering during borrowck)
 - #116841 (Suggest unwrap/expect for let binding type mismatch)
 - #116943 (Add target features for LoongArch)
 - #117010 (Add method to convert internal to stable constructs)
 - #117127 (Remove `#[allow(incomplete_features)]` from RPITIT/AFIT tests)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-10-24 19:32:19 +00:00
Michael Goulet
18b7d9eb8c Intern LocalDefId list from opaque query 2023-10-24 18:01:01 +00:00
Matthias Krüger
060bdfd9f3
Rollup merge of #117127 - compiler-errors:incomplete, r=lqd
Remove `#[allow(incomplete_features)]` from RPITIT/AFIT tests

They've been unnecessary for a while.
2023-10-24 19:29:56 +02:00
Matthias Krüger
f131a0a771
Rollup merge of #117010 - celinval:smir-internal, r=oli-obk
Add method to convert internal to stable constructs

This is an alternative implementation to https://github.com/rust-lang/rust/pull/116999. I believe we can still improve the logic a bit here, but I wanted to see which direction we should go first.

In this implementation, the API is simpler and we keep Tables somewhat private. The definition is still public though, since we have to expose the Stable trait. However, there's a cost of keeping another thread-local and using `Rc`, but I'm hoping it will be a small cost.

r? ``@oli-obk``
r? ``@spastorino``
2023-10-24 19:29:56 +02:00
Matthias Krüger
84f0befac5
Rollup merge of #116943 - heiher:target-features, r=wesleywiser
Add target features for LoongArch
2023-10-24 19:29:55 +02:00
Matthias Krüger
7a0a2d2d23
Rollup merge of #116841 - chenyukang:yukang-suggest-unwrap-expect, r=b-naber
Suggest unwrap/expect for let binding type mismatch

Found it when investigating https://github.com/rust-lang/rust/issues/116738
I'm not sure whether it's a good style to suggest `unwrap`, seems it's may helpful for newcomers.

#116738 needs another fix to improve it.
2023-10-24 19:29:55 +02:00
Matthias Krüger
61ff4dbedd
Rollup merge of #116792 - JonasAlaif:renumber-fix, r=b-naber
Avoid unnecessary renumbering during borrowck

Currently, after renumbering there are always unused `RegionVid`s if the return type contains any regions, this is due to `visit_ty` being called twice on the same `Ty`: once with `TyContext::ReturnTy` and once with `TyContext::LocalDecl { local: _0 }`. This PR skips renumbering the first time around.
2023-10-24 19:29:54 +02:00
Matthias Krüger
845c414fae
Rollup merge of #116714 - WaffleLapkin:order-the-order, r=joshtriplett
Derive `Ord`, `PartialOrd` and `Hash` for `SocketAddr*`

Fixes #116711

The main pain of this PR is to fix the buggy impl of `Ord` for `SocketAddrV6`, which ignored half of the fields (while `PartialEq` is derived):
4603f0b8af/library/core/src/net/socket_addr.rs (L99-L106)

4603f0b8af/library/core/src/net/socket_addr.rs (L676)

For me it looks like a simple copy-paste error made in https://github.com/rust-lang/rust/pull/72239 (copy from v4 impl) (cc `@hch12907),` as I don't see this behavior being mentioned anywhere on the PR and it also does not respect `cmp` trait "rules". I also do not see any reasons for those impls to _not_ be derived.

It's a shame we did not notice this for 28 versions/3 years. I guess this is a bug fix, but I'm not sure what the process here should be.

r? libs
2023-10-24 19:29:54 +02:00
Matthias Krüger
f3e18e4a60
Rollup merge of #116396 - obeis:hir-analysis-migrate-diagnostics-7, r=oli-obk
Migrate diagnostics in `rustc_hir_analysis/src/coherence/orphan.rs`

r? ``@compiler-errors``
2023-10-24 19:29:53 +02:00
Matthias Krüger
c07ff9c810
Rollup merge of #116094 - Swatinem:coverage-branch-gate, r=wesleywiser
Introduce `-C instrument-coverage=branch` to gate branch coverage

This was extracted from https://github.com/rust-lang/rust/pull/115061 and can land independently from other coverage related work.

The flag is unused for now, but is added in advance of adding branch coverage support.
It is an unstable, nightly only flag that needs to be used in combination with `-Zunstable-options`, like so: `-Zunstable-options -C instrument-coverage=branch`.

The goal is to develop branch coverage as an unstable opt-in feature first, before it matures and can be turned on by default.
2023-10-24 19:29:53 +02:00
bors
98b4a64a16 Auto merge of #117126 - matthiaskrgr:rollup-8huie8f, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #117081 (fix typos in comments)
 - #117091 (`OptWithInfcx` naming nits, trait bound simplifications)
 - #117092 (Add regression test for #117058)
 - #117093 (Update books)
 - #117105 (remove change-id assertion in bootstrap test)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-10-24 17:28:45 +00:00