diff --git a/src/doc/rustc/src/command-line-arguments.md b/src/doc/rustc/src/command-line-arguments.md index 11925ab978588..6ed28f1a84521 100644 --- a/src/doc/rustc/src/command-line-arguments.md +++ b/src/doc/rustc/src/command-line-arguments.md @@ -384,6 +384,9 @@ to customize the output: argument](#option-emit), and as soon as the artifact is available on the filesystem a notification will be emitted. +- `future-incompat` - includes a JSON message that contains a report if the + crate contains any code that may fail to compile in the future. + Note that it is invalid to combine the `--json` argument with the [`--color`](#option-color) argument, and it is required to combine `--json` with `--error-format=json`. diff --git a/src/doc/rustc/src/json.md b/src/doc/rustc/src/json.md index 5dee603142dcd..efbf861eaa68c 100644 --- a/src/doc/rustc/src/json.md +++ b/src/doc/rustc/src/json.md @@ -229,6 +229,32 @@ flag][option-emit] documentation. } ``` +## Future-incompatible reports + +If the [`--json=future-incompat`][option-json] flag is used, then a separate +JSON structure will be emitted if the crate may stop compiling in the future. +This contains diagnostic information about the particular warnings that may be +turned into a hard error in the future. This will include the diagnostic +information, even if the diagnostics have been suppressed (such as with an +`#[allow]` attribute or the `--cap-lints` option). + +```javascript +{ + /* An array of objects describing a warning that will become a hard error + in the future. + */ + "future_incompat_report": + [ + { + /* A diagnostic structure as defined in + https://doc.rust-lang.org/rustc/json.html#diagnostics + */ + "diagnostic": {...}, + } + ] +} +``` + [option-emit]: command-line-arguments.md#option-emit [option-error-format]: command-line-arguments.md#option-error-format [option-json]: command-line-arguments.md#option-json