| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2020-07-08 | Correctly mark the ending span of a match arm | Ayaz Hafiz | -1/+1 | |
| Closes #74050 r? @matthewjasper | ||||
| 2020-06-26 | Show the values and computation that would overflow a const evaluation or ↵ | Oliver Scherer | -3/+3 | |
| propagation | ||||
| 2020-06-15 | [const-prop] Remove `ConstPropMode::NoPropagation` | Wesley Wiser | -5/+4 | |
| This mode is unnecessary because it's always ok to evaluate the right-hand side of assignments even if the left-hand side should not have reads propagated. | ||||
| 2020-05-24 | Clear MIR local type annotations after borrowck | Jonas Schievink | -1/+1 | |
| 2020-05-11 | Modify SimplifyArmIdentity so it can trigger on mir-opt-level=1 | Wesley Wiser | -1/+30 | |
| I also added test cases to make sure the optimization can fire on all of these cases: ```rust fn case_1(o: Option<u8>) -> Option<u8> { match o { Some(u) => Some(u), None => None, } } fn case2(r: Result<u8, i32>) -> Result<u8, i32> { match r { Ok(u) => Ok(u), Err(i) => Err(i), } } fn case3(r: Result<u8, i32>) -> Result<u8, i32> { let u = r?; Ok(u) } ``` Without MIR inlining, this still does not completely optimize away the `?` operator because the `Try::into_result()`, `From::from()` and `Try::from_error()` calls still exist. This does move us a bit closer to that goal though because: - We can now run the pass on mir-opt-level=1 - We no longer depend on the copy propagation pass running which is unlikely to stabilize anytime soon. | ||||
| 2020-04-28 | Allow Locals to be propagated into and from, but restricted to their own block | Félix Fischer | -0/+53 | |
