Commit Graph

222671 Commits

Author SHA1 Message Date
whtahy
314126257d add known-bug test for unsound issue 98117 2023-04-22 13:31:00 -04:00
bors
4396ceca05 Auto merge of #109753 - compiler-errors:replenish-region-constraints, r=aliemjay
Clone region var origins instead of taking them in borrowck

Fixes an issue with the new solver where reporting a borrow-checker error ICEs because it calls `InferCtxt::evaluate_obligation`.

This also removes a handful of unnecessary `tcx.infer_ctxt().build()` calls that are only there to mitigate this same exact issue, but with the old solver.

Fixes compiler-errors/next-solver-hir-issues#12.

----

This implements `@aliemjay's` solution where we just don't *take* the region constraints, but clone them. This potentially makes it easier to write a bug about taking region constraints twice or never at all, but again, not many folks are touching this code.
2023-04-22 15:15:51 +00:00
Caleb Robson
0cc1b86a3a
Fix grammar 2023-04-22 15:58:44 +01:00
Alex Macleod
397f36a78c Fix #[allow(clippy::enum_variant_names)] directly on variants 2023-04-22 14:53:15 +00:00
Camille GILLOT
dd78b997b5 Reduce rightward drift. 2023-04-22 12:30:37 +00:00
Camille GILLOT
dd452ae70e Simplify logic. 2023-04-22 12:30:36 +00:00
Camille GILLOT
629cdb42d3 Move eval_discriminant. 2023-04-22 12:30:36 +00:00
Camille GILLOT
0e68cbd45d Remove useless special case. 2023-04-22 12:30:36 +00:00
bors
39cf520299 Auto merge of #109507 - Amanieu:panic-oom-payload, r=davidtwco
Report allocation errors as panics

OOM is now reported as a panic but with a custom payload type (`AllocErrorPanicPayload`) which holds the layout that was passed to `handle_alloc_error`.

This should be review one commit at a time:
- The first commit adds `AllocErrorPanicPayload` and changes allocation errors to always be reported as panics.
- The second commit removes `#[alloc_error_handler]` and the `alloc_error_hook` API.

ACP: https://github.com/rust-lang/libs-team/issues/192

Closes #51540
Closes #51245
2023-04-22 12:27:45 +00:00
klensy
3338ee3ca7 drop unused deps, gate libc under unix for one crate 2023-04-22 15:22:21 +03:00
bors
21fab435da Auto merge of #104844 - cjgillot:mention-eval-place, r=jackh726,RalfJung
Evaluate place expression in `PlaceMention`

https://github.com/rust-lang/rust/pull/102256 introduces a `PlaceMention(place)` MIR statement which keep trace of `let _ = place` statements from surface rust, but without semantics.

This PR proposes to change the behaviour of `let _ =` patterns with respect to the borrow-checker to verify that the bound place is live.

Specifically, consider this code:
```rust
let _ = {
    let a = 5;
    &a
};
```

This passes borrowck without error on stable. Meanwhile, replacing `_` by `_: _` or `_p` errors with "error[E0597]: `a` does not live long enough", [see playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=c448d25a7c205dc95a0967fe96bccce8).

This PR *does not* change how `_` patterns behave with respect to initializedness: it remains ok to bind a moved-from place to `_`.

The relevant test is `tests/ui/borrowck/let_underscore_temporary.rs`. Crater check found no regression.

For consistency, this PR changes miri to evaluate the place found in `PlaceMention`, and report eventual dangling pointers found within it.

r? `@RalfJung`
2023-04-22 09:54:21 +00:00
bors
ccb6290e43 Auto merge of #110567 - JohnBobbo96:monomorphize-dyn-dispatch, r=b-naber
Remove some uses of dynamic dispatch during monomorphization/partitioning.

This removes a few uses of dynamic dispatch and instead uses generics, as well as an enum to allow for other partitioning methods to be added later.
2023-04-22 07:43:43 +00:00
Michael Goulet
6041030c0f Expect that equating a projection term always succeeds in new solver 2023-04-22 06:07:18 +00:00
bors
3128fd8ddf Auto merge of #110666 - JohnTitor:rollup-3pwilte, r=JohnTitor
Rollup of 7 pull requests

Successful merges:

 - #109949 (rustdoc: migrate `document_type_layout` to askama)
 - #110622 (Stable hash tag (discriminant) of `GenericArg`)
 - #110635 (More `IS_ZST` in `library`)
 - #110640 (compiler/rustc_target: Raise m68k-linux-gnu baseline to 68020)
 - #110657 (nit: consistent naming for SimplifyConstCondition)
 - #110659 (rustdoc: clean up JS)
 - #110660 (Print ty placeholders pretty)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-04-22 05:35:08 +00:00
whtahy
3c5de9a2e8 add known-bug test for unsound issue 85099 2023-04-22 00:51:49 -04:00
whtahy
be68c69e71 add known-bug test for unsound issue 84591 2023-04-22 00:47:07 -04:00
whtahy
cac62ab2dd add known-bug test for unsound issue 84533 2023-04-22 00:47:07 -04:00
whtahy
fbfb620de8 add known-bug test for unsound issue 84366 2023-04-22 00:47:07 -04:00
whtahy
232d685e61 add known-bug test for unsound issue 57893 2023-04-22 00:47:07 -04:00
whtahy
2fb20985a0 add known-bug test for unsound issue 49206 2023-04-22 00:47:07 -04:00
whtahy
adb5ded7a7 add known-bug test for unsound issue 25860 2023-04-22 00:47:07 -04:00
bors
37b22cf2d5 Auto merge of #110469 - compiler-errors:encode-lt-param-span, r=oli-obk
Encode lifetime param spans too

Fixes #110464
Fixes #110591
2023-04-22 03:28:13 +00:00
Peter Collingbourne
fa3515679b pointer-auth-link-with-c: Fix cross compilation. 2023-04-21 18:38:17 -07:00
Yuki Okushi
16e2096f0f
Rollup merge of #110660 - compiler-errors:placeholders-pretty, r=wesleywiser,BoxyUwU
Print ty placeholders pretty

Makes anon placeholders print like `!0` instead of `Placeholder { ... }`.

```
rustc_trait_selection::solve::compute_well_formed_goal goal=Goal{
    predicate: !0,
    param_env: ParamEnv{
      caller_bounds: [
        Binder(TraitPredicate(<!0 as std::marker::Copy>, polarity: Positive), []),
        Binder(TraitPredicate(<!0 as std::clone::Clone>, polarity: Positive), []),
        Binder(TraitPredicate(<!0 as std::marker::Sized>, polarity: Positive), []),
      ],
      reveal: UserFacing,
      constness: NotConst,
    }
  }
```

cc `@BoxyUwU` who might care about this formatting decision
2023-04-22 10:33:59 +09:00
Yuki Okushi
c8a32391c7
Rollup merge of #110659 - notriddle:notriddle/js-cleanup-20230421, r=GuillaumeGomez
rustdoc: clean up JS

* use `Set` for ignored crates in cross-crate trait impl JS, instead of `indexOf` string manipulation
* lift constant `window.location.split` code out of a loop in source code sidebar builder
* remove redundant history manipulation from search page exit
2023-04-22 10:33:59 +09:00
Yuki Okushi
617ecd2a7a
Rollup merge of #110657 - miguelraz:cleanup-simplifycfg-refactor, r=compiler-errors
nit: consistent naming for SimplifyConstCondition

Fixing a small naming inconsistency that `@JakobDegen` brought up in https://github.com/rust-lang/rust/pull/110477#discussion_r1170783823.

Please signal for rollup.
2023-04-22 10:33:58 +09:00
Yuki Okushi
18c16b506d
Rollup merge of #110640 - glaubitz:m68k-baseline, r=oli-obk
compiler/rustc_target: Raise m68k-linux-gnu baseline to 68020

Atomic operations require 68020 or later on m68k-linux-gnu.
2023-04-22 10:33:58 +09:00
Yuki Okushi
581e7417ce
Rollup merge of #110635 - scottmcm:zst-checks, r=the8472
More `IS_ZST` in `library`

I noticed that `post_inc_start` and `pre_dec_end` were doing this check in different ways

d19b64fb54/library/core/src/slice/iter/macros.rs (L76-L93)

so started making this PR, then added a few more I found since I was already making changes anyway.
2023-04-22 10:33:57 +09:00
Yuki Okushi
9a798e416c
Rollup merge of #110622 - WaffleLapkin:hashtag#, r=compiler-errors
Stable hash tag (discriminant) of `GenericArg`

This is a continuation of my quest of removing `transmute` if generic args and types (#110496, #110599).

r? `@compiler-errors`
2023-04-22 10:33:57 +09:00
Yuki Okushi
684bdf87f4
Rollup merge of #109949 - notriddle:notriddle/type-layout, r=jsha
rustdoc: migrate `document_type_layout` to askama
2023-04-22 10:33:56 +09:00
Ezra Shaw
e9c52a5cbb
stop x fmt formatting alt build dirs 2023-04-22 13:25:38 +12:00
Michael Goulet
1d7a2472bf Print ty placeholders pretty 2023-04-22 01:19:28 +00:00
Michael Goulet
24c2c075cc Encode lifetime param spans too 2023-04-22 01:13:54 +00:00
Mark Rousskov
6ecdd0377c Add note about change in bootstrap defaults 2023-04-21 20:56:59 -04:00
bors
80a2ec49a4 Auto merge of #106934 - DrMeepster:offset_of, r=WaffleLapkin
Add offset_of! macro (RFC 3308)

Implements https://github.com/rust-lang/rfcs/pull/3308 (tracking issue #106655) by adding the built in macro `core::mem::offset_of`. Two of the future possibilities are also implemented:

* Nested field accesses (without array indexing)
* DST support (for `Sized` fields)

I wrote this a few months ago, before the RFC merged. Now that it's merged, I decided to rebase and finish it.

cc `@thomcc` (RFC author)
2023-04-22 00:10:44 +00:00
Michael Howell
1d0f34fd77 rustdoc: remove unused CSS color: inherit
This code was added back when `border-color: currentColor` was used.
Since it was changed in ad9a89eef2, the
current color is not used any more.
2023-04-21 17:07:42 -07:00
Michael Howell
5cefe75436 rustdoc: remove unneeded handleKey from settings.js
This code was added in 9dc5dfb975
and 704050da23 because the browser-
native checkbox was `display: none`, breaking native keyboard
accessibility.

The native checkbox is now merely `appearance: none`, which does
not turn off [behavior semantics], so JavaScript to
reimplement it isn't needed any more.

[behavior semantics]: https://w3c.github.io/csswg-drafts/css-ui/#appearance-semantics
2023-04-21 16:42:23 -07:00
Scott McMurray
56613f8c38 More IS_ZST in library
I noticed that `post_inc_start` and `pre_dec_end` were doing this check in different ways

d19b64fb54/library/core/src/slice/iter/macros.rs (L76-L93)

so started making this PR, then added a few more I found since I was already making changes anyway.
2023-04-21 16:29:27 -07:00
Oli Scherer
334423263a Run check_match and check_liveness when MIR is built instead of having an explicit phase for them 2023-04-21 22:32:38 +00:00
Oli Scherer
5bb58a68de Make check_match and check_liveness take a LocalDefId 2023-04-21 22:27:20 +00:00
Oli Scherer
1ce80e210d Allow LocalDefId as the argument to def_path_str 2023-04-21 22:27:20 +00:00
Oli Scherer
e18d1f8d2e Leave it to the query system to invoke the typeck query instead of invoking it eagerly.
Later queries that are run on all body owners will invoke typeck as they need information from its result to perform their own logic
2023-04-21 22:12:45 +00:00
Michael Howell
0cd3874155 rustdoc: clean up redundant search hiding results code
* There's no need to call `history.replaceState` right before
    calling `searchState.hideResults`, which already does it.
  * There's no need to implement hiding search results when that
    is already implemented.
2023-04-21 15:09:09 -07:00
Michael Howell
9d69ee0574 rustdoc: lift constant string manipulation out of loop 2023-04-21 15:09:09 -07:00
Michael Howell
994dd696cb rustdoc: use Set for ignored crates, instead of string matching 2023-04-21 15:09:09 -07:00
bors
0fd50f3e01 Auto merge of #110653 - weihanglo:update-cargo, r=weihanglo
Update cargo

14 commits in d0a4cbcee614fdb7ba66e860e603a00a644d71f8..de80432f04da61d98dcbbc1572598071718ccfd2
2023-04-16 17:42:50 +0000 to 2023-04-21 13:18:32 +0000
- Bump to 0.72.0; update changelog (rust-lang/cargo#12012)
- Remove `src/doc` from `exclude` list in Cargo.toml (rust-lang/cargo#12000)
- `--help` output use line wrap (rust-lang/cargo#12013)
- Fix semver checks for 1.69 (rust-lang/cargo#12011)
- Update contributor guide with new issue labels. (rust-lang/cargo#12003)
- Better error message when getting an empty dep table (rust-lang/cargo#11997)
- Fix broken links in contributor guide. (rust-lang/cargo#12002)
- Update linux-raw-sys to 0.3.2 (rust-lang/cargo#11998)
- chore: Use globs for workspace members (rust-lang/cargo#11996)
- fix: Allow win/mac credential managers to build on all platforms (rust-lang/cargo#11993)
- Add S-triage auto-label. (rust-lang/cargo#11995)
- ci: check if Cargo.lock is up-to-date (rust-lang/cargo#11994)
- Recompile on profile rustflags changes (rust-lang/cargo#11981)
- Clarify some 1.69 changelog entries. (rust-lang/cargo#11982)
2023-04-21 21:54:27 +00:00
miguelraz
6f29a3c980 nit: consistent naming for SimplifyConstCondition 2023-04-21 15:45:25 -06:00
Camille GILLOT
2870d269f5 Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
Camille GILLOT
ddfa2463e2 Evaluate place expression in PlaceMention. 2023-04-21 21:34:59 +00:00
Bryan Garza
55e5a1d206 Create "AppendConstMessage" enum
This patch creates an enum to replace a nested `Option`.
2023-04-21 14:07:41 -07:00