| Age | Commit message (Collapse) | Author | Lines |
|
using TyCtxt
|
|
|
|
for definitions that have no HIR
|
|
Switch to `EarlyBinder` for `type_of` query
Part of the work to finish #105779 and implement https://github.com/rust-lang/types-team/issues/78.
Several queries `X` have a `bound_X` variant that wraps the output in `EarlyBinder`. This adds `EarlyBinder` to the return type of the `type_of` query and removes `bound_type_of`.
r? `@lcnr`
|
|
Rollup of 8 pull requests
Successful merges:
- #104068 (rustdoc: Add PartialOrd trait to doc comment explanation)
- #107489 (Implement partial support for non-lifetime binders)
- #107905 (Pass arguments to `x` subcommands with `--`)
- #108009 (Move some tests)
- #108086 (wasm: Register the `relaxed-simd` target feature)
- #108104 (don't into self)
- #108133 (Small cleanups around `EarlyBinder`)
- #108136 (Do not ICE on unmet trait alias impl bounds)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
in metadata
|
|
Small cleanups around `EarlyBinder`
Cleaning up a few things that were brought up by `@lcnr` in reviewing #106696:
- [make `issue33140_self_ty` query return `Option<EarlyBinder<Ty>>`](https://github.com/rust-lang/rust/pull/106696#discussion_r1067821423)
- [small style improvement](https://github.com/rust-lang/rust/pull/106696#discussion_r1067816772)
|
|
|
|
|
|
|
|
|
|
|
|
This commit implements MCP https://github.com/rust-lang/compiler-team/issues/584
It also removes code that is no longer used, and that includes code cloning resolver, so issue #83761 is fixed.
|
|
|
|
Also add asserts to decoding `LazyArray`s with `Option`
|
|
|
|
Change wording from "nullable" to "default".
Introduce a trait `IsDefault` for detecting values that are encoded as zeros or not encoded at all.
Add panics to impossible cases.
Some other minor cleanups.
|
|
|
|
Only compute mir_generator_witnesses query in drop_tracking_mir mode.
Attempt to fix the perf regression in https://github.com/rust-lang/rust/pull/101692
r? `@ghost`
|
|
|
|
|
|
|
|
Switch to `EarlyBinder` for `fn_sig` query
Part of the work to finish #105779 (also see https://github.com/rust-lang/types-team/issues/78).
Several queries `X` have a `bound_X` variant that wraps the output in [`EarlyBinder`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/subst/struct.EarlyBinder.html). This adds `EarlyBinder` to the return type of the `fn_sig` query and removes `bound_fn_sig`.
r? `@lcnr`
|
|
rustdoc: Collect "rustdoc-reachable" items during early doc link resolution
This pass only needs to know about visibilities, attributes and reexports, so it can be run early, similarly to `compute_effective_visibilities` in rustc.
Results of this pass can be used to prune the list of extern impls early thus improving performance of https://github.com/rust-lang/rust/pull/94857.
|
|
rustc_metadata: Fix `encode_attrs`
This function didn't do what the authors intended it to do.
- Due to `move` in the closure `is_public` wasn't captured by mutalbe reference and wasn't used as a cache.
- Due to iterator cloning all the `should_encode_attr` logic run for the second time to calculate `may_have_doc_links`
This PR fixes these issues, and calculates all the needed attribute flags in one go.
(Noticed while implementing https://github.com/rust-lang/rust/pull/107136.)
|
|
EarlyBinder to fn_sig in metadata
|
|
|
|
Encode info for Adt in a single place.
Split from https://github.com/rust-lang/rust/pull/98867
|
|
|
|
This function didn't do what the authors intended it to do.
- Due to `move` in the closure `is_public` wasn't captured by mutalbe reference and wasn't used as a cache.
- Due to iterator cloning all the `should_encode_attr` logic run for the second time to calculate `may_have_doc_links`
This PR fixes these issues, and calculates all the needed attribute flags in one go.
|
|
This is a convenience feature for cases in which "no value in the table" and "default value in the table" are equivalent.
Tables using `Table<DefIndex, ()>` are migrated in this PR, some other cases can be migrated later.
This helps `DocFlags` in https://github.com/rust-lang/rust/pull/107136 in particular.
|
|
|
|
|
|
|
|
To retrieve these flags rustdoc currently has to mass decode full attributes for items in the whole crate tree, so it's better to pre-compute it in advance.
This is especially for short-term performance of https://github.com/rust-lang/rust/pull/107054 because resolver cannot use memoization of query results yet.
|
|
Use UnordMap and UnordSet for id collections (DefIdMap, LocalDefIdMap, etc)
This PR changes the `rustc_data_structures::define_id_collections!` macro to use `UnordMap` and `UnordSet` instead of `FxHashMap` and `FxHashSet`. This should account for a large portion of hash-maps being used in places where they can cause trouble.
The changes required are moderate but non-zero:
- In some places the collections are extracted into sorted vecs.
- There are a few instances where for-loops have been changed to extends.
~~Let's see what the performance impact is. With a bit more refactoring, we might be able to get rid of some of the additional sorting -- but the change set is already big enough. Unless there's a performance impact, I'd like to do further changes in subsequent PRs.~~
Performance does not seem to be negatively affected ([perf-run here](https://github.com/rust-lang/rust/pull/106977#issuecomment-1396776699)).
Part of [MCP 533](https://github.com/rust-lang/compiler-team/issues/533).
r? `@ghost`
|
|
|
|
|
|
|
|
|
|
Encode const mir for closures if they're const
Fixes #106913
|
|
Remove double spaces after dots in comments
Most of the comments do not have double spaces, so I assume these are typos.
|
|
|
|
|
|
|
|
bound_impl_trait_ref query; add EarlyBinder to impl_trait_ref in metadata
|
|
|
|
bound_const_param_default query; add EarlyBinder to const_param_default in metadata
|
|
|
|
|