Auto merge of #80692 - Aaron1011:feature/query-result-debug, r=estebank
Enforce that query results implement Debug Currently, we require that query keys implement `Debug`, but we do not do the same for query values. This can make incremental compilation bugs difficult to debug - there isn't a good place to print out the result loaded from disk. This PR adds `Debug` bounds to several query-related functions, allowing us to debug-print the query value when an 'unstable fingerprint' error occurs. This required adding `#[derive(Debug)]` to a fairly large number of types - hopefully, this doesn't have much of an impact on compiler bootstrapping times.
This commit is contained in:
@@ -185,7 +185,7 @@ pub struct ImplHeader<'tcx> {
|
||||
pub predicates: Vec<Predicate<'tcx>>,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, PartialEq, TyEncodable, TyDecodable, HashStable)]
|
||||
#[derive(Copy, Clone, PartialEq, TyEncodable, TyDecodable, HashStable, Debug)]
|
||||
pub enum ImplPolarity {
|
||||
/// `impl Trait for Type`
|
||||
Positive,
|
||||
@@ -435,7 +435,7 @@ pub enum Variance {
|
||||
/// HIR of every item in the local crate. Instead, use
|
||||
/// `tcx.variances_of()` to get the variance for a *particular*
|
||||
/// item.
|
||||
#[derive(HashStable)]
|
||||
#[derive(HashStable, Debug)]
|
||||
pub struct CrateVariancesMap<'tcx> {
|
||||
/// For each item with generics, maps to a vector of the variance
|
||||
/// of its generics. If an item has no generics, it will have no
|
||||
@@ -1174,7 +1174,7 @@ pub enum PredicateKind<'tcx> {
|
||||
/// HIR of every item in the local crate. Instead, use
|
||||
/// `tcx.inferred_outlives_of()` to get the outlives for a *particular*
|
||||
/// item.
|
||||
#[derive(HashStable)]
|
||||
#[derive(HashStable, Debug)]
|
||||
pub struct CratePredicatesMap<'tcx> {
|
||||
/// For each struct with outlive bounds, maps to a vector of the
|
||||
/// predicate of its outlive bounds. If an item has no outlives
|
||||
@@ -3107,7 +3107,7 @@ impl<'tcx> TyCtxt<'tcx> {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, HashStable)]
|
||||
#[derive(Clone, HashStable, Debug)]
|
||||
pub struct AdtSizedConstraint<'tcx>(pub &'tcx [Ty<'tcx>]);
|
||||
|
||||
/// Yields the parent function's `DefId` if `def_id` is an `impl Trait` definition.
|
||||
|
||||
Reference in New Issue
Block a user