Add explain_reason: false
in future_incompatible.
This allows supressing the default warning message for future incompatible ints, for lints that already provide a more detailed warning.
This commit is contained in:
parent
543ab99640
commit
7f4e343893
@ -145,6 +145,11 @@ pub struct FutureIncompatibleInfo {
|
||||
/// The reason for the lint used by diagnostics to provide
|
||||
/// the right help message
|
||||
pub reason: FutureIncompatibilityReason,
|
||||
/// Whether to explain the reason to the user.
|
||||
///
|
||||
/// Set to false for lints that already include a more detailed
|
||||
/// explanation.
|
||||
pub explain_reason: bool,
|
||||
/// Information about a future breakage, which will
|
||||
/// be emitted in JSON messages to be displayed by Cargo
|
||||
/// for upstream deps
|
||||
@ -185,6 +190,7 @@ impl FutureIncompatibleInfo {
|
||||
FutureIncompatibleInfo {
|
||||
reference: "",
|
||||
reason: FutureIncompatibilityReason::FutureReleaseError,
|
||||
explain_reason: true,
|
||||
future_breakage: None,
|
||||
}
|
||||
}
|
||||
|
@ -398,9 +398,14 @@ pub fn struct_lint_level<'s, 'd>(
|
||||
it will become a hard error in a future release!"
|
||||
.to_owned()
|
||||
};
|
||||
let citation = format!("for more information, see {}", future_incompatible.reference);
|
||||
err.warn(&explanation);
|
||||
err.note(&citation);
|
||||
if future_incompatible.explain_reason {
|
||||
err.warn(&explanation);
|
||||
}
|
||||
if !future_incompatible.reference.is_empty() {
|
||||
let citation =
|
||||
format!("for more information, see {}", future_incompatible.reference);
|
||||
err.note(&citation);
|
||||
}
|
||||
}
|
||||
|
||||
// Finally, run `decorate`. This function is also responsible for emitting the diagnostic.
|
||||
|
Loading…
x
Reference in New Issue
Block a user