Rollup merge of #121328 - ffmancera:ff/verbose_long_type, r=compiler-errors
Make --verbose imply -Z write-long-types-to-disk=no When shortening the type it is necessary to take into account the `--verbose` flag, if it is activated, we must always show the entire type and not write it in a file. Fixes: https://github.com/rust-lang/rust/issues/119130
This commit is contained in:
commit
4a205bba5e
5 changed files with 24 additions and 1 deletions
|
@ -369,6 +369,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||||
};
|
};
|
||||||
if let Some(file) = file {
|
if let Some(file) = file {
|
||||||
err.note(format!("the full type name has been written to '{}'", file.display()));
|
err.note(format!("the full type name has been written to '{}'", file.display()));
|
||||||
|
err.note(format!(
|
||||||
|
"consider using `--verbose` to print the full type name to the console"
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
err
|
err
|
||||||
|
@ -493,6 +496,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||||
|
|
||||||
if let Some(file) = ty_file {
|
if let Some(file) = ty_file {
|
||||||
err.note(format!("the full type name has been written to '{}'", file.display(),));
|
err.note(format!("the full type name has been written to '{}'", file.display(),));
|
||||||
|
err.note(format!(
|
||||||
|
"consider using `--verbose` to print the full type name to the console"
|
||||||
|
));
|
||||||
}
|
}
|
||||||
if rcvr_ty.references_error() {
|
if rcvr_ty.references_error() {
|
||||||
err.downgrade_to_delayed_bug();
|
err.downgrade_to_delayed_bug();
|
||||||
|
|
|
@ -1935,6 +1935,7 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||||
"the full type name has been written to '{}'",
|
"the full type name has been written to '{}'",
|
||||||
path.display(),
|
path.display(),
|
||||||
));
|
));
|
||||||
|
diag.note(format!("consider using `--verbose` to print the full type name to the console"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -351,7 +351,7 @@ impl<'tcx> TyCtxt<'tcx> {
|
||||||
})
|
})
|
||||||
.expect("could not write to `String`");
|
.expect("could not write to `String`");
|
||||||
|
|
||||||
if !self.sess.opts.unstable_opts.write_long_types_to_disk {
|
if !self.sess.opts.unstable_opts.write_long_types_to_disk || self.sess.opts.verbose {
|
||||||
return regular;
|
return regular;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1283,6 +1283,9 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||||
"the full type name has been written to '{}'",
|
"the full type name has been written to '{}'",
|
||||||
file.display()
|
file.display()
|
||||||
));
|
));
|
||||||
|
err.note(format!(
|
||||||
|
"consider using `--verbose` to print full type name to the console"
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if imm_ref_self_ty_satisfies_pred && mut_ref_self_ty_satisfies_pred {
|
if imm_ref_self_ty_satisfies_pred && mut_ref_self_ty_satisfies_pred {
|
||||||
|
@ -2866,6 +2869,9 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||||
"the full name for the type has been written to '{}'",
|
"the full name for the type has been written to '{}'",
|
||||||
file.display(),
|
file.display(),
|
||||||
));
|
));
|
||||||
|
err.note(format!(
|
||||||
|
"consider using `--verbose` to print the full type name to the console"
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ObligationCauseCode::RepeatElementCopy {
|
ObligationCauseCode::RepeatElementCopy {
|
||||||
|
@ -3333,6 +3339,9 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||||
"the full type name has been written to '{}'",
|
"the full type name has been written to '{}'",
|
||||||
file.display(),
|
file.display(),
|
||||||
));
|
));
|
||||||
|
err.note(format!(
|
||||||
|
"consider using `--verbose` to print the full type name to the console"
|
||||||
|
));
|
||||||
}
|
}
|
||||||
let mut parent_predicate = parent_trait_pred;
|
let mut parent_predicate = parent_trait_pred;
|
||||||
let mut data = &data.derived;
|
let mut data = &data.derived;
|
||||||
|
@ -3386,6 +3395,9 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||||
"the full type name has been written to '{}'",
|
"the full type name has been written to '{}'",
|
||||||
file.display(),
|
file.display(),
|
||||||
));
|
));
|
||||||
|
err.note(format!(
|
||||||
|
"consider using `--verbose` to print the full type name to the console"
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// #74711: avoid a stack overflow
|
// #74711: avoid a stack overflow
|
||||||
|
|
|
@ -21,6 +21,7 @@ LL | | ))))))))))))))))))))))))))))));
|
||||||
= note: expected struct `Atype<Btype<..., ...>, ...>`
|
= note: expected struct `Atype<Btype<..., ...>, ...>`
|
||||||
found enum `Result<Result<..., ...>, ...>`
|
found enum `Result<Result<..., ...>, ...>`
|
||||||
= note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/long-E0308/long-E0308.long-type-hash.txt'
|
= note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/long-E0308/long-E0308.long-type-hash.txt'
|
||||||
|
= note: consider using `--verbose` to print the full type name to the console
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/long-E0308.rs:57:26
|
--> $DIR/long-E0308.rs:57:26
|
||||||
|
@ -36,6 +37,7 @@ LL | | ))))))))))))))))))))))));
|
||||||
= note: expected enum `Option<Result<..., ...>>`
|
= note: expected enum `Option<Result<..., ...>>`
|
||||||
found enum `Result<Result<..., ...>, ...>`
|
found enum `Result<Result<..., ...>, ...>`
|
||||||
= note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/long-E0308/long-E0308.long-type-hash.txt'
|
= note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/long-E0308/long-E0308.long-type-hash.txt'
|
||||||
|
= note: consider using `--verbose` to print the full type name to the console
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/long-E0308.rs:88:9
|
--> $DIR/long-E0308.rs:88:9
|
||||||
|
@ -55,6 +57,7 @@ LL | | > = ();
|
||||||
= note: expected struct `Atype<Btype<..., ...>, ...>`
|
= note: expected struct `Atype<Btype<..., ...>, ...>`
|
||||||
found unit type `()`
|
found unit type `()`
|
||||||
= note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/long-E0308/long-E0308.long-type-hash.txt'
|
= note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/long-E0308/long-E0308.long-type-hash.txt'
|
||||||
|
= note: consider using `--verbose` to print the full type name to the console
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/long-E0308.rs:91:17
|
--> $DIR/long-E0308.rs:91:17
|
||||||
|
@ -72,6 +75,7 @@ LL | | ))))))))))))))))))))))));
|
||||||
= note: expected unit type `()`
|
= note: expected unit type `()`
|
||||||
found enum `Result<Result<..., ...>, ...>`
|
found enum `Result<Result<..., ...>, ...>`
|
||||||
= note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/long-E0308/long-E0308.long-type-hash.txt'
|
= note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/long-E0308/long-E0308.long-type-hash.txt'
|
||||||
|
= note: consider using `--verbose` to print the full type name to the console
|
||||||
|
|
||||||
error: aborting due to 4 previous errors
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue