| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2020-12-27 | Prevent caching projections in the case of cycles | Matthew Jasper | -1/+15 | |
| When normalizing a projection which results in a cycle, we would cache the result of `project_type` without the nested obligations (because they're not needed for inference). This would result in the nested obligations only being handled once in fulfill, which would avoid the cycle error. Fixes #79714, a regresion from #79305 caused by the removal of `get_paranoid_cache_value_obligation`. | ||||
| 2020-11-10 | Rollup merge of #76765 - guswynn:async_return, r=tmandry | Jonas Schievink | -33/+133 | |
| Make it more clear what an about async fn's returns when referring to what it returns see #76547 This is *likely* not the ONLY place that this happens to be unclear, but we can move this fn to rustc_middle or something like that and reuse it if need be, to apply it to more diagnostics One outstanding question I have is, if the fn returns (), should I make the message more clear (what about `fn f()` vs `fn f() -> ()`, can you tell those apart in the hir?) R? `@tmandry` `@rustbot` modify labels +A-diagnostics +T-compiler | ||||
| 2020-11-04 | fix a couple of clippy warnings: | Matthias Krüger | -1/+0 | |
| filter_next manual_strip redundant_static_lifetimes single_char_pattern unnecessary_cast unused_unit op_ref redundant_closure useless_conversion | ||||
| 2020-10-30 | Remove implicit `Continue` type | LeSeulArtichaut | -6/+6 | |
| 2020-10-30 | TypeVisitor: use `ControlFlow` in rustc_{infer,lint,trait_selection} | LeSeulArtichaut | -11/+19 | |
| 2020-10-29 | Rollup merge of #78460 - varkor:turbofish-string-generic, r=lcnr | Yuki Okushi | -2/+0 | |
| Adjust turbofish help message for const generics Types are no longer special. (This message arguably only makes sense with `min_const_generics` or more, but we'll be there soon.) r? @lcnr | ||||
| 2020-10-28 | Remove irrelevant FIXME | varkor | -2/+0 | |
| 2020-10-26 | Suggest calling await on method call and field access | Esteban Küber | -1/+1 | |
| When encountering a failing method or field resolution on a `Future`, look at the `Output` and try the same operation on it. If successful, suggest calling `.await` on the `Future`. This had already been introduced in #72784, but at some point they stopped working. | ||||
| 2020-10-26 | Rollup merge of #78268 - JohnTitor:issue-78262, r=estebank | Dylan DPC | -0/+8 | |
| Do not try to report on closures to avoid ICE Fixes #78262 | ||||
| 2020-10-25 | Do not try to report on closures to avoid ICE | Yuki Okushi | -0/+8 | |
| 2020-10-23 | Suggest semicolon removal and boxing when appropriate | Esteban Küber | -8/+27 | |
| 2020-10-23 | Add more `.await` suggestions on E0308 | Esteban Küber | -38/+119 | |
| 2020-10-23 | Review comments: use newtype instead of `bool` | Esteban Küber | -2/+3 | |
| 2020-10-23 | Account for possible boxable `impl Future` in semicolon removal suggestions | Esteban Küber | -14/+32 | |
| 2020-10-22 | Reduce diagram mess in 'match arms have incompatible types' error | David Tolnay | -2/+14 | |
| 2020-10-21 | Lift: take self by value | Bastian Kauschke | -2/+2 | |
| 2020-10-20 | review comments | Esteban Küber | -1/+1 | |
| 2020-10-20 | Tweak "object unsafe" errors | Esteban Küber | -15/+22 | |
| Fix #77598. | ||||
| 2020-10-19 | revert workaround #73027 | SNCPlay42 | -15/+2 | |
| 2020-10-17 | Make it more clear when complaining about async fn's return types | Gus Wynn | -33/+133 | |
| 2020-10-16 | Review comments | Jack Huey | -1/+1 | |
| 2020-10-16 | map_bound_ref -> rebind | Jack Huey | -6/+4 | |
| 2020-10-16 | Use map_bound(_ref) instead of Binder::bind when possible | Jack Huey | -6/+9 | |
| 2020-10-14 | Remove unused code from rustc_infer | est31 | -40/+0 | |
| 2020-10-13 | Replace absolute paths with relative ones | est31 | -4/+4 | |
| Modern compilers allow reaching external crates like std or core via relative paths in modules outside of lib.rs and main.rs. | ||||
| 2020-10-06 | Remove unused part of return value from `replace_bound_vars_with_placeholders` | Matthew Jasper | -14/+6 | |
| 2020-10-06 | Separate bounds and predicates for associated/opaque types | Matthew Jasper | -13/+18 | |
| 2020-10-06 | Rename projection_predicates to item_bounds | Matthew Jasper | -2/+2 | |
| 2020-10-05 | Auto merge of #77171 - VFLashM:better_sso_structures, r=oli-obk | bors | -8/+8 | |
| Better sso structures This change greatly expands interface of MiniSet/MiniMap and renames them because they are no longer "Mini". | ||||
| 2020-09-26 | Revert "Add an unused field of type `Option<DefId>` to `ParamEnv` struct." | Dylan MacKenzie | -1/+1 | |
| This reverts commit ab83d372ed5b1799d418afe83c468e4c5973cc34. | ||||
| 2020-09-26 | MiniSet/MiniMap moved and renamed into SsoHashSet/SsoHashMap | Valerii Lashmanov | -8/+8 | |
| It is a more descriptive name and with upcoming changes there will be nothing "mini" about them. | ||||
| 2020-09-26 | Rollup merge of #77211 - est31:remove_unused_allow, r=oli-obk | Ralf Jung | -1/+0 | |
| Remove unused #[allow(...)] statements from compiler/ | ||||
| 2020-09-26 | Rollup merge of #77093 - lcnr:const-generics-infer-warning, r=varkor | Ralf Jung | -104/+178 | |
| merge `need_type_info_err(_const)` I hoped that this would automatically solve #76737 but it doesn't quite seem like it fixes #77092 r? @varkor | ||||
| 2020-09-26 | unused into | Bastian Kauschke | -1/+1 | |
| 2020-09-26 | rename functions | Bastian Kauschke | -12/+12 | |
| 2020-09-26 | Remove unused #[allow(...)] statements from compiler/ | est31 | -1/+0 | |
| 2020-09-25 | Implement `Display` for `DisambiguatedDefPathData` and `DefPathData` | marmeladema | -1/+1 | |
| 2020-09-25 | Move from {{closure}}#0 syntax to {closure#0} for (def) path components | marmeladema | -1/+1 | |
| 2020-09-25 | Rollup merge of #77121 - duckymirror:html-root-url, r=jyn514 | Jonas Schievink | -1/+1 | |
| Updated html_root_url for compiler crates Closes #77103 r? @jyn514 | ||||
| 2020-09-24 | the two hardest things in programming, names and... | Bastian Kauschke | -79/+115 | |
| 2020-09-23 | /nightly/nightly-rustc | Erik Hofmayer | -1/+1 | |
| 2020-09-23 | Updated html_root_url for compiler crates | Erik Hofmayer | -1/+1 | |
| 2020-09-23 | use relevant span when unifying `ConstVarValue`s | Bastian Kauschke | -1/+2 | |
| 2020-09-23 | use the correct span when dealing with inference variables | Bastian Kauschke | -5/+9 | |
| 2020-09-23 | unused path | Bastian Kauschke | -1/+1 | |
| 2020-09-23 | merge `need_type_info_err(_const)` | Bastian Kauschke | -88/+121 | |
| 2020-09-23 | Move MiniSet to data_structures | Andreas Jonson | -1/+1 | |
| remove the need for T to be copy from MiniSet as was done for MiniMap | ||||
| 2020-09-22 | Auto merge of #76928 - lcnr:opaque-types-cache, r=tmandry | bors | -60/+1 | |
| cache types during normalization partially fixes #75992 reduces the following test from 14 to 3 seconds locally. cc `@Mark-Simulacrum` would it make sense to add that test to `perf`? ```rust #![recursion_limit="2048"] #![type_length_limit="112457564"] pub async fn h0(v: &String, x: &u64) { println!("{} {}", v, x) } pub async fn h1(v: &String, x: &u64) { h0(v, x).await } pub async fn h2(v: &String, x: &u64) { h1(v, x).await } pub async fn h3(v: &String, x: &u64) { h2(v, x).await } pub async fn h4(v: &String, x: &u64) { h3(v, x).await } pub async fn h5(v: &String, x: &u64) { h4(v, x).await } pub async fn h6(v: &String, x: &u64) { h5(v, x).await } pub async fn h7(v: &String, x: &u64) { h6(v, x).await } pub async fn h8(v: &String, x: &u64) { h7(v, x).await } pub async fn h9(v: &String, x: &u64) { h8(v, x).await } pub async fn h10(v: &String, x: &u64) { h9(v, x).await } pub async fn h11(v: &String, x: &u64) { h10(v, x).await } pub async fn h12(v: &String, x: &u64) { h11(v, x).await } pub async fn h13(v: &String, x: &u64) { h12(v, x).await } pub async fn h14(v: &String, x: &u64) { h13(v, x).await } pub async fn h15(v: &String, x: &u64) { h14(v, x).await } pub async fn h16(v: &String, x: &u64) { h15(v, x).await } pub async fn h17(v: &String, x: &u64) { h16(v, x).await } pub async fn h18(v: &String, x: &u64) { h17(v, x).await } pub async fn h19(v: &String, x: &u64) { h18(v, x).await } macro_rules! async_recursive { (29, $inner:expr) => { async { async_recursive!(28, $inner) }.await }; (28, $inner:expr) => { async { async_recursive!(27, $inner) }.await }; (27, $inner:expr) => { async { async_recursive!(26, $inner) }.await }; (26, $inner:expr) => { async { async_recursive!(25, $inner) }.await }; (25, $inner:expr) => { async { async_recursive!(24, $inner) }.await }; (24, $inner:expr) => { async { async_recursive!(23, $inner) }.await }; (23, $inner:expr) => { async { async_recursive!(22, $inner) }.await }; (22, $inner:expr) => { async { async_recursive!(21, $inner) }.await }; (21, $inner:expr) => { async { async_recursive!(20, $inner) }.await }; (20, $inner:expr) => { async { async_recursive!(19, $inner) }.await }; (19, $inner:expr) => { async { async_recursive!(18, $inner) }.await }; (18, $inner:expr) => { async { async_recursive!(17, $inner) }.await }; (17, $inner:expr) => { async { async_recursive!(16, $inner) }.await }; (16, $inner:expr) => { async { async_recursive!(15, $inner) }.await }; (15, $inner:expr) => { async { async_recursive!(14, $inner) }.await }; (14, $inner:expr) => { async { async_recursive!(13, $inner) }.await }; (13, $inner:expr) => { async { async_recursive!(12, $inner) }.await }; (12, $inner:expr) => { async { async_recursive!(11, $inner) }.await }; (11, $inner:expr) => { async { async_recursive!(10, $inner) }.await }; (10, $inner:expr) => { async { async_recursive!(9, $inner) }.await }; (9, $inner:expr) => { async { async_recursive!(8, $inner) }.await }; (8, $inner:expr) => { async { async_recursive!(7, $inner) }.await }; (7, $inner:expr) => { async { async_recursive!(6, $inner) }.await }; (6, $inner:expr) => { async { async_recursive!(5, $inner) }.await }; (5, $inner:expr) => { async { async_recursive!(4, $inner) }.await }; (4, $inner:expr) => { async { async_recursive!(3, $inner) }.await }; (3, $inner:expr) => { async { async_recursive!(2, $inner) }.await }; (2, $inner:expr) => { async { async_recursive!(1, $inner) }.await }; (1, $inner:expr) => { async { async_recursive!(0, $inner) }.await }; (0, $inner:expr) => { async { h19(&String::from("owo"), &0).await; $inner }.await }; } async fn f() { async_recursive!(14, println!("hello")); } fn main() { let _ = f(); } ``` r? `@eddyb` requires a perf run. | ||||
| 2020-09-21 | Rollup merge of #76888 - matthiaskrgr:clippy_single_match_2, r=Dylan-DPC | ecstatic-morse | -10/+8 | |
| use if let instead of single match arm expressions use if let instead of single match arm expressions to compact code and reduce nesting (clippy::single_match) | ||||
| 2020-09-22 | Auto merge of #76913 - vandenheuvel:performance_debug, r=lcnr | bors | -1/+1 | |
| Fixing the performance regression of #76244 Issue https://github.com/rust-lang/rust/issues/74865 suggested that removing the `def_id` field from `ParamEnv` would improve performance. PR https://github.com/rust-lang/rust/pull/76244 implemented this change. Generally, [results](https://perf.rust-lang.org/compare.html?start=80fc9b0ecb29050d45b17c64af004200afd3cfc2&end=5ef250dd2ad618ee339f165e9b711a1b4746887d) were as expected: an instruction count decrease of about a percent. The instruction count for the unicode crates increased by about 3%, which `@nnethercote` speculated to be caused by a quirk of inlining or codegen. As the results were generally positive, and for chalk integration, this was also a step in the right direction, the PR was r+'d regardless. However, [wall-time performance results](https://perf.rust-lang.org/compare.html?start=a055c5a1bd95e029e9b31891db63b6dc8258b472&end=7402a394471a6738a40fea7d4f1891666e5a80c5&stat=task-clock) show a much larger performance degradation: 25%, as [mentioned](https://github.com/rust-lang/rust/pull/76244#issuecomment-694459840) by `@Mark-Simulacrum.` This PR, for now, reverts #76244 and attempts to find out, which change caused the regression. | ||||
