| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2024-08-31 | Rollup merge of #129725 - compiler-errors:predicates-of, r=fmease | Matthias Krüger | -0/+18 | |
| Stop using `ty::GenericPredicates` for non-predicates_of queries `GenericPredicates` is a struct of several parts: A list of of an item's own predicates, and a parent def id (and some effects related stuff, but ignore that since it's kinda irrelevant). When instantiating these generic predicates, it calls `predicates_of` on the parent and instantiates its predicates, and appends the item's own instantiated predicates too: https://github.com/rust-lang/rust/blob/acb4e8b6251f1d8da36f08e7a70fa23fc581839e/compiler/rustc_middle/src/ty/generics.rs#L407-L413 Notice how this should result in a recursive set of calls to `predicates_of`... However, `GenericPredicates` is *also* misused by a bunch of *other* queries as a convenient way of passing around a list of predicates. For these queries, we don't ever set the parent def id of the `GenericPredicates`, but if we did, then this would be very easy to mistakenly call `predicates_of` instead of some other intended parent query. Given that footgun, and the fact that we don't ever even *use* the parent def id in the `GenericPredicates` returned from queries like `explicit_super_predicates_of`, It really has no benefit over just returning `&'tcx [(Clause<'tcx>, Span)]`. This PR additionally opts to wrap the results of `EarlyBinder`, as we've tended to use that in the return type of these kinds of queries to properly convey that the user has params to deal with, and it also gives a convenient way of iterating over a slice of things after instantiating. | ||||
| 2024-08-29 | Simplify some extern providers | Michael Goulet | -11/+21 | |
| 2024-08-29 | Stop using ty::GenericPredicates for non-predicates_of queries | Michael Goulet | -0/+18 | |
| 2024-08-28 | Implement RFC 3525. | Luca Versari | -0/+1 | |
| 2024-07-29 | Reformat `use` declarations. | Nicholas Nethercote | -10/+7 | |
| The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options. | ||||
| 2024-07-17 | Add cross-crate precise capturing support to rustdoc | Michael Goulet | -0/+10 | |
| 2024-06-29 | Auto merge of #120639 - fee1-dead-contrib:new-effects-desugaring, r=oli-obk | bors | -0/+3 | |
| Implement new effects desugaring cc `@rust-lang/project-const-traits.` Will write down notes once I have finished. * [x] See if we want `T: Tr` to desugar into `T: Tr, T::Effects: Compat<true>` * [x] Fix ICEs on `type Assoc: ~const Tr` and `type Assoc<T: ~const Tr>` * [ ] add types and traits to minicore test * [ ] update rustc-dev-guide Fixes #119717 Fixes #123664 Fixes #124857 Fixes #126148 | ||||
| 2024-06-28 | implement new effects desugaring | Deadbeef | -0/+3 | |
| 2024-06-27 | Make queries more explicit | Michael Goulet | -2/+2 | |
| 2024-06-16 | Rename InstanceDef -> InstanceKind | Michael Goulet | -1/+1 | |
| 2024-06-07 | Only compute specializes query if specialization is enabled in the crate of ↵ | Michael Goulet | -0/+1 | |
| the specialized impl | ||||
| 2024-06-06 | Revert "Rollup merge of #124976 - petrochenkov:usedcrates, r=oli-obk" | Rémy Rakic | -2/+2 | |
| This reverts commit eda4a35f365535af72118118a3597edf5a13c12d, reversing changes made to eb6b35b5bcb3c2a594cb29cd478aeb2893f49d30. | ||||
| 2024-05-29 | Start implementing needs_async_drop and related | Daria Sukhonina | -0/+4 | |
| 2024-05-22 | rustc: Use `tcx.used_crates(())` more | Vadim Petrochenkov | -2/+2 | |
| And explain when it should be used. | ||||
| 2024-05-13 | Remove `extern crate rustc_middle` from `rustc_metadata`. | Nicholas Nethercote | -0/+1 | |
| 2024-04-19 | Move `stable_crate_ids` from `CrateStore` to `Untracked` | Oli Scherer | -8/+7 | |
| This way it's like `Definitions`, which creates `DefId`s by interning `DefPathData`s, but for interning stable crate hashes | ||||
| 2024-03-27 | Make `def_path_hash_to_def_id` a hook | Oli Scherer | -5/+9 | |
| 2024-03-27 | Move `CrateStore::expn_hash_to_expn_id` to a hook | Oli Scherer | -11/+5 | |
| 2024-03-27 | Start replacing `CStore` trait methods with hooks. | Oli Scherer | -4/+8 | |
| This also avoids the cyclic definition issues with CrateStore being defined after TyCtxt, but needing to be used in TyCtxt. | ||||
| 2024-03-22 | Always encode implied_predicates query for traits | Michael Goulet | -12/+1 | |
| With associated type bounds enabled, the implied_predicates and super_predicates queries may differ for traits, since associated type bounds are also implied but are not counted as super predicates. | ||||
| 2024-03-20 | Split item bounds and item super predicates | Michael Goulet | -0/+1 | |
| 2024-03-05 | Avoid invoking the `intrinsic` query for DefKinds other than `Fn` or `AssocFn` | Oli Scherer | -1/+1 | |
| 2024-02-18 | resolve: Scale back unloading of speculatively loaded crates | Vadim Petrochenkov | -0/+10 | |
| 2024-02-16 | Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin | bors | -1/+1 | |
| Implement intrinsics with fallback bodies fixes #93145 (though we can port many more intrinsics) cc #63585 The way this works is that the backend logic for generating custom code for intrinsics has been made fallible. The only failure path is "this intrinsic is unknown". The `Instance` (that was `InstanceDef::Intrinsic`) then gets converted to `InstanceDef::Item`, which represents the fallback body. A regular function call to that body is then codegenned. This is currently implemented for * codegen_ssa (so llvm and gcc) * codegen_cranelift other backends will need to adjust, but they can just keep doing what they were doing if they prefer (though adding new intrinsics to the compiler will then require them to implement them, instead of getting the fallback body). cc `@scottmcm` `@WaffleLapkin` ### todo * [ ] miri support * [x] default intrinsic name to name of function instead of requiring it to be specified in attribute * [x] make sure that the bodies are always available (must be collected for metadata) | ||||
| 2024-02-15 | Return ConstAllocation from eval_static_initializer query directly | Oli Scherer | -3/+3 | |
| 2024-02-15 | Store static initializers in metadata instead of the MIR of statics. | Oli Scherer | -0/+9 | |
| 2024-02-12 | Remove impl_polarity query | Oli Scherer | -1/+0 | |
| 2024-02-12 | Implement intrinsics with fallback bodies | Oli Scherer | -1/+1 | |
| 2024-02-12 | Make impl_trait_ref into a query also returning more information about the impl | Oli Scherer | -1/+1 | |
| 2024-02-12 | Make `is_intrinsic` query return the intrinsic name | Oli Scherer | -1/+1 | |
| 2024-02-10 | Encode coroutine_for_closure for foreign crates | Michael Goulet | -0/+1 | |
| 2024-02-06 | resolve: Unload speculatively resolved crates before freezing cstore | Vadim Petrochenkov | -1/+14 | |
| 2024-01-23 | Remove track_errors entirely | Oli Scherer | -1/+8 | |
| 2024-01-17 | Make crate_inherent_impls fallible and stop using `track_errors` for it | Oli Scherer | -2/+2 | |
| 2024-01-04 | cstore: Remove unnecessary locking from `CrateMetadata` | Vadim Petrochenkov | -18/+18 | |
| 2023-12-21 | Encode CoroutineKind directly | Michael Goulet | -1/+1 | |
| 2023-11-25 | rustc: Make `def_kind` mandatory for all `DefId`s | Vadim Petrochenkov | -1/+1 | |
| 2023-11-21 | Fix `clippy::needless_borrow` in the compiler | Nilstrieb | -1/+1 | |
| `x clippy compiler -Aclippy::all -Wclippy::needless_borrow --fix`. Then I had to remove a few unnecessary parens and muts that were exposed now. | ||||
| 2023-11-20 | Store feature stability un-split | Michael Goulet | -1/+1 | |
| 2023-11-20 | Unify defined_lib_features and lib_features queries | Michael Goulet | -1/+1 | |
| 2023-10-20 | s/generator/coroutine/ | Oli Scherer | -2/+2 | |
| 2023-10-17 | Automatically enable cross-crate inlining for small functions | Ben Kimock | -0/+1 | |
| 2023-09-26 | Don't store lazyness in DefKind | Michael Goulet | -0/+1 | |
| 2023-09-23 | Enable drop_tracking_mir by default. | Camille GILLOT | -1/+0 | |
| 2023-09-22 | Merge `ExternProviders` into the general `Providers` struct | Oli Scherer | -4/+6 | |
| 2023-09-21 | Move `DepKind` to `rustc_query_system` and define it as `u16` | John Kåre Alsaker | -2/+2 | |
| 2023-09-09 | Use `FreezeLock` for `CStore` | John Kåre Alsaker | -2/+2 | |
| 2023-08-11 | rustc: Move `features` from `Session` to `GlobalCtxt` | Vadim Petrochenkov | -3/+4 | |
| Removes two pieces of mutable state. Follow up to #114622. | ||||
| 2023-07-29 | Implement assumed_wf_types for RPITITs' implementations | Michael Goulet | -0/+1 | |
| 2023-07-21 | Revert "Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk" | David Tolnay | -1/+0 | |
| This reverts commit 557359f92512ca88b62a602ebda291f17a953002, reversing changes made to 1e6c09a803fd543a98bfbe1624d697a55300a786. | ||||
