bors
2e17ac8bff
Auto merge of #2897 - RalfJung:rustup, r=RalfJung
...
Rustup
2023-05-18 01:23:40 +00:00
bohan
f34678c097
fix(resolve): replace bindings to dummy for unresolved imports
2023-05-18 09:22:29 +08:00
bors
7e18451633
Auto merge of #10175 - koka831:fix/10171, r=giraffate
...
Use original variable name in the suggestion
Fix https://github.com/rust-lang/rust-clippy/issues/10171
---
changelog: Sugg: [`manual_let_else`]: Now suggest the correct variable name
[#10175 ](https://github.com/rust-lang/rust-clippy/pull/10175 )
<!-- changelog_checked -->
2023-05-18 01:21:27 +00:00
Ramon de C Valle
f067935ab2
CFI: Fix encode_ty: unexpected Param(B/#1)
...
Fixes #111510 and complements #106547 by adding support for encoding
type parameters and also by transforming trait objects' traits into
their identities before emitting type checks.
2023-05-17 22:12:13 +00:00
León Orell Valerian Liehr
0eb364b8d6
Exclude inherent projections from some alias ty matches
2023-05-17 23:53:58 +02:00
León Orell Valerian Liehr
434f08884e
Exclude inherent projections from some alias ty matches
2023-05-17 23:53:58 +02:00
bors
24c180c438
Auto merge of #111672 - nikic:llvm-16.0.4, r=cuviper
...
Update to LLVM 16.0.4
Fixes #109918 .
2023-05-17 21:31:18 +00:00
Amanieu d'Antras
c2f0313d94
Don't assume that -Bdynamic
is the default linker mode
...
In particular this is false when passing `-static` or `-static-pie` to
the linker, which changes the default to `-Bstatic`. This PR ensures we
explicitly initialize the correct mode when we first need it.
2023-05-17 22:52:54 +02:00
Camille GILLOT
3bb5d1dfc1
Delay a bug when overwriting fed value.
2023-05-17 20:42:03 +00:00
Camille GILLOT
222acaa23e
Add incremental test.
2023-05-17 20:28:42 +00:00
adrianEffe
591f5f7ea9
Update urls in Type Checking
2023-05-17 22:55:14 +03:00
bors
e9e1bbc7a8
Auto merge of #111568 - scottmcm:undo-opt, r=WaffleLapkin
...
Stop turning transmutes into discriminant reads in mir-opt
Partially reverts #109612 , as after #109993 these aren't actually equivalent any more, and I'm no longer confident this was ever an improvement in the first place.
Having this "simplification" meant that similar-looking code actually did somewhat different things. For example,
```rust
pub unsafe fn demo1(x: std::cmp::Ordering) -> u8 {
std::mem::transmute(x)
}
pub unsafe fn demo2(x: std::cmp::Ordering) -> i8 {
std::mem::transmute(x)
}
```
in nightly today is generating <https://rust.godbolt.org/z/dPK58zW18 >
```llvm
define noundef i8 `@_ZN7example5demo117h341ef313673d2ee6E(i8` noundef %x) unnamed_addr #0 {
%0 = icmp uge i8 %x, -1
%1 = icmp ule i8 %x, 1
%2 = or i1 %0, %1
call void `@llvm.assume(i1` %2)
ret i8 %x
}
define noundef i8 `@_ZN7example5demo217h5ad29f361a3f5700E(i8` noundef %0) unnamed_addr #0 {
%x = alloca i8, align 1
store i8 %0, ptr %x, align 1
%1 = load i8, ptr %x, align 1, !range !2 , !noundef !3
ret i8 %1
}
```
Which feels too different when the original code is essentially identical.
---
Aside: that example is different *after* optimizations too:
```llvm
define noundef i8 `@_ZN7example5demo117h341ef313673d2ee6E(i8` noundef returned %x) unnamed_addr #0 {
%0 = add i8 %x, 1
%1 = icmp ult i8 %0, 3
tail call void `@llvm.assume(i1` %1)
ret i8 %x
}
define noundef i8 `@_ZN7example5demo217h5ad29f361a3f5700E(i8` noundef returned %0) unnamed_addr #1 {
ret i8 %0
}
```
so turning the `Transmute` into a `Discriminant` was arguably just making things worse, so leaving it alone instead -- and thus having less code in rustc -- seems clearly better.
2023-05-17 18:53:26 +00:00
Jakub Beránek
90678ccff5
Fix typo in bootstrap command description
2023-05-17 17:35:02 +02:00
Camille GILLOT
37209dcddd
Retire is_foreign_item query.
2023-05-17 15:32:17 +00:00
bors
ad23942ad4
Auto merge of #111680 - Dylan-DPC:rollup-1p45gxt, r=Dylan-DPC
...
Rollup of 6 pull requests
Successful merges:
- #110930 (Don't expect normalization to succeed in elaborate_drops)
- #111557 (Revert "Validate resolution for SelfCtor too.")
- #111565 (rustdoc-json: Add tests for visibility of impls)
- #111588 (Emits E0599 when meeting `MyTrait::missing_method`)
- #111625 (Move rustc_middle/src/ty/query.rs to rustc_middle/src/query/plumbing.rs)
- #111674 (Add missing backslash in HTML string)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2023-05-17 15:17:13 +00:00
Michael Woerister
927e1efaaf
Don't sort output of debugger_visualizer query because it already is in deterministic order.
2023-05-17 16:02:22 +02:00
Dylan DPC
b0d92c2b70
Rollup merge of #111674 - GuillaumeGomez:add-missing-backslash, r=notriddle
...
Add missing backslash in HTML string
Found this missing one when looking at code.
r? `@notriddle`
2023-05-17 19:11:56 +05:30
Dylan DPC
3df55382d4
Rollup merge of #111625 - Zoxc:rustc_middle-query-move, r=cjgillot
...
Move rustc_middle/src/ty/query.rs to rustc_middle/src/query/plumbing.rs
This just keeps the query modules together.
r? `@cjgillot`
2023-05-17 19:11:55 +05:30
Dylan DPC
291ced5e9a
Rollup merge of #111588 - MU001999:diag/improve-e0782, r=fee1-dead
...
Emits E0599 when meeting `MyTrait::missing_method`
Fixes #111312
2023-05-17 19:11:55 +05:30
Dylan DPC
703323e490
Rollup merge of #111565 - aDotInTheVoid:rdj-impl-viz, r=GuillaumeGomez
...
rustdoc-json: Add tests for visibility of impls
[Apparrently rustdoc use to give these `crate` instead of `default`](https://github.com/obi1kenobi/trustfall-rustdoc-adapter/compare/rustdoc-v24...rustdoc-v25#diff-58e57a0fc73d1353fa3a057f0fe81c6ecfd4548b429cef1aee36b1c84d8d15a4L366 ). CC `@obi1kenobi`
The output is arguably still buggy as to weather some of these impls should be stripped, but that's a seperate issue and shouldn't block adding these tests (#111564 )
r? `@GuillaumeGomez`
2023-05-17 19:11:54 +05:30
Dylan DPC
ff364b0082
Rollup merge of #111557 - cjgillot:revert-111020, r=petrochenkov
...
Revert "Validate resolution for SelfCtor too."
This reverts commit 83453408a0
.
That PR introduced a breaking change.
Fixes https://github.com/rust-lang/rust/issues/111541
Reopens https://github.com/rust-lang/rust/issues/89868
r? `@petrochenkov`
2023-05-17 19:11:54 +05:30
Dylan DPC
828caa80a9
Rollup merge of #110930 - b-naber:normalize-elaborate-drops, r=cjgillot
...
Don't expect normalization to succeed in elaborate_drops
Fixes https://github.com/rust-lang/rust/issues/110682
This was exposed through the changes in https://github.com/rust-lang/rust/pull/109247 , which causes more things to be inlined. Inlining can happen before monomorphization, so we can't expect normalization to succeed. In the elaborate_drops analysis we currently have [this call](033aa092ab/compiler/rustc_mir_dataflow/src/elaborate_drops.rs (L278)
) to `normalize_erasing_regions`, which ICEs when normalization fails. The types are used to infer [whether the type needs a drop](033aa092ab/compiler/rustc_mir_dataflow/src/elaborate_drops.rs (L374)
), where `needs_drop` itself [uses `try_normalize_erasing_regions`](033aa092ab/compiler/rustc_middle/src/ty/util.rs (L1121)
).
~[`instance_mir`](https://doc.rust-lang.org/stable/nightly-rustc/rustc_middle/ty/context/struct.TyCtxt.html#method.instance_mir ) isn't explicit about whether it expects the instances corresponding to the `InstanceDef`s to be monomorphized (though I think in all other contexts the function is used post-monomorphization), so the use of `instance_mir` in inlining doesn't necessarily seem wrong to me.~
2023-05-17 19:11:53 +05:30
Camille GILLOT
8c2c695c9e
Simplify back-edge logic.
2023-05-17 12:18:55 +00:00
Camille GILLOT
ada7f1c2c4
Do not clone dominator tree for SSA analysis.
2023-05-17 12:17:33 +00:00
Maybe Waffle
f542778533
Drive-by cleanup: debug::term_type
=> TerminatorKind::name
2023-05-17 11:27:37 +00:00
Maybe Waffle
03d5f9b783
rustc_mir_build
: drive-by-cleaup: replace nested ifs with a match
2023-05-17 11:27:37 +00:00
Maybe Waffle
5ae51d69a3
rustc_mir_build
: drive-by-cleanup: remove some local mutable state
2023-05-17 11:27:37 +00:00
Amanieu d'Antras
67c0cfe8b5
Remove libs message about ACPs from triagebot
...
The libs team is currently reworking the ACP process and we don't want
to encourage people to submit new ACPs in the meantime.
2023-05-17 13:23:14 +02:00
Camille GILLOT
fa8598cb50
Merge DominatorTree and Dominators.
2023-05-17 10:37:29 +00:00
Camille GILLOT
4bbdb64016
Typo.
2023-05-17 10:29:12 +00:00
Camille GILLOT
7bd4fde684
Compute dominators on demand for borrowck.
2023-05-17 10:28:33 +00:00
Camille GILLOT
ae318e3444
Remove outdated comment.
2023-05-17 10:26:04 +00:00
Urgau
3281060607
Add simple regression test for --print=native-static-libs
2023-05-17 12:07:12 +02:00
yukang
c3394b3eaa
Fix #107910 , Shorten backtraces in ICEs
2023-05-17 17:56:26 +08:00
Guillaume Gomez
54f882e478
Add missing backslash in HTML string
2023-05-17 11:43:13 +02:00
Michael Woerister
cfca5b0b87
Add/improve tests for debugger_visualizer change detection.
2023-05-17 11:39:11 +02:00
Camille GILLOT
6f271dc49c
Cache dominators.
2023-05-17 09:36:12 +00:00
Tomasz Miąsko
aa1267f630
Preprocess dominator tree to answer queries in O(1)
2023-05-17 09:36:12 +00:00
Urgau
701bf2d420
Fix issue #111643 by adding the local used libraries
2023-05-17 11:25:10 +02:00
mu001999
db64512422
Emits E0599 when meeting MyTrait::missing_method
2023-05-17 16:59:39 +08:00
Nikita Popov
c544fc3584
Update to LLVM 16.0.4
2023-05-17 10:35:12 +02:00
bors
c2ccc855e7
Auto merge of #111671 - Dylan-DPC:rollup-1jy5r16, r=Dylan-DPC
...
Rollup of 6 pull requests
Successful merges:
- #110145 (Share slice of bytes)
- #111043 (Stabilize feature `cstr_is_empty`)
- #111648 (Remove `LangItems::require`)
- #111649 (Add derive for `core::marker::ConstParamTy`)
- #111654 (Add a conversion from `&mut T` to `&mut UnsafeCell<T>`)
- #111661 (Erase regions of type in `offset_of!`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2023-05-17 06:42:07 +00:00
Dylan DPC
0720743836
Rollup merge of #111661 - clubby789:offset-of-erase-regions, r=compiler-errors
...
Erase regions of type in `offset_of!`
Fixes #111657
2023-05-17 11:13:58 +05:30
Dylan DPC
71fdb95272
Rollup merge of #111654 - JoJoJet:unsafe-cell-from-mut-lib, r=joshtriplett
...
Add a conversion from `&mut T` to `&mut UnsafeCell<T>`
Provides a safe way of downgrading an exclusive reference into an alias-able `&UnsafeCell<T>` reference.
ACP: https://github.com/rust-lang/libs-team/issues/198 .
2023-05-17 11:13:57 +05:30
Dylan DPC
bc3b94a486
Rollup merge of #111649 - Nilstrieb:derive-const-param-ty, r=BoxyUwU
...
Add derive for `core::marker::ConstParamTy`
This makes it easier to implement it for a type, just like `Copy`.
`@BoxyUwU` half asked me to add it
2023-05-17 11:13:57 +05:30
Dylan DPC
506b50ee39
Rollup merge of #111648 - Nilstrieb:language-items, r=WaffleLapkin
...
Remove `LangItems::require`
It's just a short wrapper used by `tcx.require_lang_item`. Deleting it gives us a negative diff.
2023-05-17 11:13:56 +05:30
Dylan DPC
e7176dbfd8
Rollup merge of #111648 - Nilstrieb:language-items, r=WaffleLapkin
...
Remove `LangItems::require`
It's just a short wrapper used by `tcx.require_lang_item`. Deleting it gives us a negative diff.
2023-05-17 11:13:56 +05:30
Dylan DPC
5b58471c4c
Rollup merge of #111043 - jmillikin:cstr-is-empty, r=dtolnay
...
Stabilize feature `cstr_is_empty`
Fixes #102444
ACP: https://github.com/rust-lang/libs-team/issues/106
2023-05-17 11:13:56 +05:30
Dylan DPC
2a5c4baf68
Rollup merge of #110145 - WaffleLapkin:share_slice_of_bytes, r=Nilstrieb
...
Share slice of bytes
r? `@Nilstrieb`
cc `@noamtashma`
2023-05-17 11:13:55 +05:30
bors
6c64870fa6
Auto merge of #111630 - BoxyUwU:ty_const_debug_formatting, r=compiler-errors
...
debug format `Const`'s less verbosely
Not user visible change only visible to people debugging const generics.
Currently debug output for `ty::Const` is super verbose (even for `-Zverbose` lol), things like printing infer vars as `Infer(Var(?0c))` instead of just `?0c`, bound vars and placeholders not using `^0_1` or `!0_1` syntax respectively. With these changes its imo better but not perfect:
`Const { ty: usize, kind: ^0_1 }`
is still a lot for not much information. not entirely sure what to do about that so not dealing with it yet.
Need to do formatting for `ConstKind::Expr` at some point too since rn it sucks (doesn't even print anything with `Display`) not gonna do that in this PR either.
r? `@compiler-errors`
2023-05-17 03:37:54 +00:00