- 01 3月, 2022 1 次提交
-
-
由 Caio 提交于
Continuation of #94376. cc #53667
-
- 15 2月, 2022 1 次提交
-
-
由 Nicholas Nethercote 提交于
Specifically, rename the `Const` struct as `ConstS` and re-introduce `Const` as this: ``` pub struct Const<'tcx>(&'tcx Interned<ConstS>); ``` This now matches `Ty` and `Predicate` more closely, including using pointer-based `eq` and `hash`. Notable changes: - `mk_const` now takes a `ConstS`. - `Const` was copy, despite being 48 bytes. Now `ConstS` is not, so need a we need separate arena for it, because we can't use the `Dropless` one any more. - Many `&'tcx Const<'tcx>`/`&Const<'tcx>` to `Const<'tcx>` changes - Many `ct.ty` to `ct.ty()` and `ct.val` to `ct.val()` changes. - Lots of tedious sigil fiddling.
-
- 03 2月, 2022 1 次提交
-
-
由 est31 提交于
-
- 02 2月, 2022 1 次提交
-
-
由 est31 提交于
-
- 19 1月, 2022 2 次提交
- 19 11月, 2021 1 次提交
-
-
由 est31 提交于
Helps avoid rightward drift.
-
- 15 11月, 2021 1 次提交
-
-
由 Krasimir Georgiev 提交于
No functional changes intended. I'm playing around with building compiler components using nightly rust (2021-11-02) in a non-standard way. I encountered the following error while trying to build rustc_mir_build: ``` error[E0597]: `wildcard` does not live long enough --> rust/src/nightly/compiler/rustc_mir_build/src/build/matches/mod.rs:1767:82 | 1767 | let mut otherwise_candidate = Candidate::new(expr_place_builder.clone(), &wildcard, false); | ^^^^^^^^^ borrowed value does not live long enough ... 1799 | } | - | | | `wildcard` dropped here while still borrowed | borrow might be used here, when `guard_candidate` is dropped and runs the destructor for type `Candidate<'_, '_>` | = note: values in a scope are dropped in the opposite order they are defined ``` I believe this flags an issue that may become an error in the future. Swapping the order of `wildcard` and `guard_candidate` resolves it.
-
- 11 9月, 2021 1 次提交
-
-
由 Matthias Krüger 提交于
-
- 10 9月, 2021 1 次提交
-
-
由 Fabian Wolff 提交于
-
- 06 9月, 2021 1 次提交
-
-
由 Matthew Jasper 提交于
Each pattern in a match arm has its own copy of the match guard in MIR, with its own temporary, so it has to be dropped before the the guards are joined to the single copy of the arm.
-
- 02 9月, 2021 3 次提交
-
-
由 Matthew Jasper 提交于
-
由 Matthew Jasper 提交于
-
由 Matthew Jasper 提交于
MIR lowering for `if let` expressions is now more complicated now that `if let` exists in HIR. This PR adds a scope for the variables bound in an `if let` expression and then uses an approach similar to how we handle loops to ensure that we reliably drop the correct variables.
-
- 26 8月, 2021 1 次提交
-
-
由 Wesley Wiser 提交于
Previously, we would set up the source lines for `match` expressions so that the code generated to perform the test of the scrutinee was matched to the line of the arm that required the test and then jump from the arm block to the "next" block was matched to all of the lines in the `match` expression. While that makes sense, it has the side effect of causing strange stepping behavior in debuggers. I've changed the source information so that all of the generated tests are sourced to `match {scrutinee}` and the jumps are sourced to the last line of the block they are inside. This resolves the weird stepping behavior in all debuggers and resolves some instances of "ambiguous symbol" errors in WinDbg preventing the user from setting breakpoints at `match` expressions.
-
- 22 8月, 2021 1 次提交
-
-
由 Frank Steffahn 提交于
-
- 18 8月, 2021 1 次提交
-
-
由 est31 提交于
-
- 16 8月, 2021 2 次提交
-
-
由 Caio 提交于
-
由 Matthew Jasper 提交于
-
- 22 5月, 2021 1 次提交
-
-
由 LeSeulArtichaut 提交于
-
- 19 5月, 2021 1 次提交
-
-
由 LeSeulArtichaut 提交于
-
- 03 4月, 2021 1 次提交
-
-
由 Roxane 提交于
-
- 16 3月, 2021 2 次提交
- 15 3月, 2021 2 次提交
- 10 3月, 2021 4 次提交
-
-
由 LeSeulArtichaut 提交于
-
由 LeSeulArtichaut 提交于
-
由 LeSeulArtichaut 提交于
-
由 LeSeulArtichaut 提交于
-
- 05 2月, 2021 2 次提交
-
-
由 Wesley Wiser 提交于
-
由 Felix S. Klock II 提交于
This reverts commit 4fef3911.
-
- 02 2月, 2021 1 次提交
-
-
由 Mark Rousskov 提交于
Also switches on formatting of the mir build module
-
- 01 2月, 2021 1 次提交
-
-
由 Camelid 提交于
The highest-priority item is the *first* in the list, not the last. See [this code][1] for more. [this code]: https://github.com/rust-lang/rust/blob/0e63af5da3400ace48a0345117980473fd21ad73/compiler/rustc_mir_build/src/build/matches/mod.rs#L1334-L1335
-
- 25 1月, 2021 1 次提交
-
-
由 Camelid 提交于
- Fix typos - Add more information - General cleanup
-
- 07 12月, 2020 1 次提交
-
-
由 Wesley Wiser 提交于
Prior to this commit, debuginfo was always generated by mapping a name to a Place. This has the side-effect that `SimplifyLocals` cannot remove locals that are only used for debuginfo because their other uses have been const-propagated. To allow these locals to be removed, we now allow debuginfo to point to a constant value. The `ConstProp` pass detects when debuginfo points to a local with a known constant value and replaces it with the value. This allows the later `SimplifyLocals` pass to remove the local.
-
- 06 12月, 2020 1 次提交
-
-
由 LeSeulArtichaut 提交于
-
- 05 12月, 2020 1 次提交
-
-
由 Matthew Jasper 提交于
-
- 26 10月, 2020 1 次提交
-
-
由 LeSeulArtichaut 提交于
-
- 04 10月, 2020 1 次提交
-
-
由 Matthew Jasper 提交于
-