From e5288842fa158081b89ddfb34f9fb87083e00634 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 14 Feb 2022 06:01:38 +0000 Subject: [PATCH 1/3] sess: stabilize `--terminal-width` Formerly `-Zterminal-width`, `--terminal-width` allows the user or build tool to inform rustc of the width of the terminal so that diagnostics can be truncated. Signed-off-by: David Wood --- compiler/rustc_interface/src/tests.rs | 1 - compiler/rustc_session/src/config.rs | 12 ++++++++++++ compiler/rustc_session/src/options.rs | 1 + compiler/rustc_session/src/session.rs | 6 +++--- src/librustdoc/config.rs | 6 +++++- src/librustdoc/core.rs | 7 +++++-- src/librustdoc/lib.rs | 15 ++++++++++++++- .../output-default.stdout | 3 +++ src/test/rustdoc-ui/terminal-width.rs | 5 +++++ src/test/rustdoc-ui/terminal-width.stderr | 15 +++++++++++++++ src/test/ui/terminal-width/flag-human.rs | 2 +- src/test/ui/terminal-width/flag-json.rs | 2 +- src/test/ui/terminal-width/flag-json.stderr | 2 +- 13 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 src/test/rustdoc-ui/terminal-width.rs create mode 100644 src/test/rustdoc-ui/terminal-width.stderr diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs index 30a29ed6ed38f..81145416437b7 100644 --- a/compiler/rustc_interface/src/tests.rs +++ b/compiler/rustc_interface/src/tests.rs @@ -689,7 +689,6 @@ fn test_debugging_options_tracking_hash() { untracked!(span_debug, true); untracked!(span_free_formats, true); untracked!(temps_dir, Some(String::from("abc"))); - untracked!(terminal_width, Some(80)); untracked!(threads, 99); untracked!(time, true); untracked!(time_llvm_passes, true); diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs index e7717f1367cb0..2650ad5287902 100644 --- a/compiler/rustc_session/src/config.rs +++ b/compiler/rustc_session/src/config.rs @@ -726,6 +726,7 @@ impl Default for Options { prints: Vec::new(), cg: Default::default(), error_format: ErrorOutputType::default(), + terminal_width: None, externs: Externs(BTreeMap::new()), crate_name: None, libs: Vec::new(), @@ -1427,6 +1428,12 @@ pub fn rustc_optgroups() -> Vec { never = never colorize output", "auto|always|never", ), + opt::opt_s( + "", + "terminal-width", + "Inform rustc of the width of the terminal so that errors can be truncated", + "WIDTH", + ), opt::multi_s( "", "remap-path-prefix", @@ -2202,6 +2209,10 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options { let error_format = parse_error_format(matches, color, json_rendered); + let terminal_width = matches.opt_get("terminal-width").unwrap_or_else(|_| { + early_error(error_format, "`--terminal-width` must be an positive integer"); + }); + let unparsed_crate_types = matches.opt_strs("crate-type"); let crate_types = parse_crate_types_from_list(unparsed_crate_types) .unwrap_or_else(|e| early_error(error_format, &e)); @@ -2474,6 +2485,7 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options { prints, cg, error_format, + terminal_width, externs, unstable_features: UnstableFeatures::from_environment(crate_name.as_deref()), crate_name, diff --git a/compiler/rustc_session/src/options.rs b/compiler/rustc_session/src/options.rs index be70ea5d5e480..80e811bc1a745 100644 --- a/compiler/rustc_session/src/options.rs +++ b/compiler/rustc_session/src/options.rs @@ -170,6 +170,7 @@ top_level_options!( test: bool [TRACKED], error_format: ErrorOutputType [UNTRACKED], + terminal_width: Option [UNTRACKED], /// If `Some`, enable incremental compilation, using the given /// directory to store intermediate results. diff --git a/compiler/rustc_session/src/session.rs b/compiler/rustc_session/src/session.rs index 2a5ddd4e9e420..b5a72ed20c16a 100644 --- a/compiler/rustc_session/src/session.rs +++ b/compiler/rustc_session/src/session.rs @@ -1162,7 +1162,7 @@ fn default_emitter( fallback_bundle, short, sopts.debugging_opts.teach, - sopts.debugging_opts.terminal_width, + sopts.terminal_width, macro_backtrace, ), Some(dst) => EmitterWriter::new( @@ -1188,7 +1188,7 @@ fn default_emitter( fallback_bundle, pretty, json_rendered, - sopts.debugging_opts.terminal_width, + sopts.terminal_width, macro_backtrace, ) .ui_testing(sopts.debugging_opts.ui_testing), @@ -1202,7 +1202,7 @@ fn default_emitter( fallback_bundle, pretty, json_rendered, - sopts.debugging_opts.terminal_width, + sopts.terminal_width, macro_backtrace, ) .ui_testing(sopts.debugging_opts.ui_testing), diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs index 04638aa1af62b..0c913f8a07f9a 100644 --- a/src/librustdoc/config.rs +++ b/src/librustdoc/config.rs @@ -73,6 +73,8 @@ pub(crate) struct Options { pub(crate) proc_macro_crate: bool, /// How to format errors and warnings. pub(crate) error_format: ErrorOutputType, + /// Width of terminal to truncate errors appropriately. + pub(crate) terminal_width: Option, /// Library search paths to hand to the compiler. pub(crate) libs: Vec, /// Library search paths strings to hand to the compiler. @@ -334,11 +336,12 @@ impl Options { let config::JsonConfig { json_rendered, json_unused_externs, .. } = config::parse_json(matches); let error_format = config::parse_error_format(matches, color, json_rendered); + let terminal_width = matches.opt_get("terminal-width").unwrap_or_default(); let codegen_options = CodegenOptions::build(matches, error_format); let debugging_opts = DebuggingOptions::build(matches, error_format); - let diag = new_handler(error_format, None, &debugging_opts); + let diag = new_handler(error_format, None, terminal_width, &debugging_opts); // check for deprecated options check_deprecated_options(matches, &diag); @@ -702,6 +705,7 @@ impl Options { input, proc_macro_crate, error_format, + terminal_width, libs, lib_strs, externs, diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 51b245e36ba3b..7ed7243cb99c4 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -154,6 +154,7 @@ impl<'tcx> DocContext<'tcx> { pub(crate) fn new_handler( error_format: ErrorOutputType, source_map: Option>, + terminal_width: Option, debugging_opts: &DebuggingOptions, ) -> rustc_errors::Handler { let fallback_bundle = @@ -169,7 +170,7 @@ pub(crate) fn new_handler( fallback_bundle, short, debugging_opts.teach, - debugging_opts.terminal_width, + terminal_width, false, ) .ui_testing(debugging_opts.ui_testing), @@ -187,7 +188,7 @@ pub(crate) fn new_handler( fallback_bundle, pretty, json_rendered, - debugging_opts.terminal_width, + terminal_width, false, ) .ui_testing(debugging_opts.ui_testing), @@ -208,6 +209,7 @@ pub(crate) fn create_config( crate_name, proc_macro_crate, error_format, + terminal_width, libs, externs, mut cfgs, @@ -266,6 +268,7 @@ pub(crate) fn create_config( actually_rustdoc: true, debugging_opts, error_format, + terminal_width, edition, describe_lints, crate_name, diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index ded3d9951bd35..d42bb02e0323e 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -462,6 +462,14 @@ fn opts() -> Vec { "human|json|short", ) }), + unstable("terminal-width", |o| { + o.optopt( + "", + "terminal-width", + "Provide width of the terminal for truncated error messages", + "WIDTH", + ) + }), stable("json", |o| { o.optopt("", "json", "Configure the structure of JSON diagnostics", "CONFIG") }), @@ -733,7 +741,12 @@ fn run_renderer<'tcx, T: formats::FormatRenderer<'tcx>>( } fn main_options(options: config::Options) -> MainResult { - let diag = core::new_handler(options.error_format, None, &options.debugging_opts); + let diag = core::new_handler( + options.error_format, + None, + options.terminal_width, + &options.debugging_opts, + ); match (options.should_test, options.markdown_input()) { (true, true) => return wrap_return(&diag, markdown::test(options)), diff --git a/src/test/run-make/issue-88756-default-output/output-default.stdout b/src/test/run-make/issue-88756-default-output/output-default.stdout index 6d16fe5673bc1..6ca2143efbdea 100644 --- a/src/test/run-make/issue-88756-default-output/output-default.stdout +++ b/src/test/run-make/issue-88756-default-output/output-default.stdout @@ -110,6 +110,9 @@ Options: never = never colorize output --error-format human|json|short How errors and other messages are produced + --terminal-width WIDTH + Provide width of the terminal for truncated error + messages --json CONFIG Configure the structure of JSON diagnostics --disable-minification Disable minification applied on JS files diff --git a/src/test/rustdoc-ui/terminal-width.rs b/src/test/rustdoc-ui/terminal-width.rs new file mode 100644 index 0000000000000..72544d7ee53a1 --- /dev/null +++ b/src/test/rustdoc-ui/terminal-width.rs @@ -0,0 +1,5 @@ +// compile-flags: -Zunstable-options --terminal-width=10 +#![deny(rustdoc::bare_urls)] + +/// This is a long line that contains a http://link.com +pub struct Foo; //~^ ERROR diff --git a/src/test/rustdoc-ui/terminal-width.stderr b/src/test/rustdoc-ui/terminal-width.stderr new file mode 100644 index 0000000000000..16ab606eb9902 --- /dev/null +++ b/src/test/rustdoc-ui/terminal-width.stderr @@ -0,0 +1,15 @@ +error: this URL is not a hyperlink + --> $DIR/terminal-width.rs:4:41 + | +LL | ... a http://link.com + | ^^^^^^^^^^^^^^^ help: use an automatic link instead: `` + | +note: the lint level is defined here + --> $DIR/terminal-width.rs:2:9 + | +LL | ...ny(rustdoc::bare_url... + | ^^^^^^^^^^^^^^^^^^ + = note: bare URLs are not automatically turned into clickable links + +error: aborting due to previous error + diff --git a/src/test/ui/terminal-width/flag-human.rs b/src/test/ui/terminal-width/flag-human.rs index e445a84fd012e..4ae960ef967b9 100644 --- a/src/test/ui/terminal-width/flag-human.rs +++ b/src/test/ui/terminal-width/flag-human.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z terminal-width=20 +// compile-flags: --terminal-width=20 // This test checks that `-Z terminal-width` effects the human error output by restricting it to an // arbitrarily low value so that the effect is visible. diff --git a/src/test/ui/terminal-width/flag-json.rs b/src/test/ui/terminal-width/flag-json.rs index 3d2530e204b33..d4e51e80347d5 100644 --- a/src/test/ui/terminal-width/flag-json.rs +++ b/src/test/ui/terminal-width/flag-json.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z terminal-width=20 --error-format=json +// compile-flags: --terminal-width=20 --error-format=json // This test checks that `-Z terminal-width` effects the JSON error output by restricting it to an // arbitrarily low value so that the effect is visible. diff --git a/src/test/ui/terminal-width/flag-json.stderr b/src/test/ui/terminal-width/flag-json.stderr index 93c246cb3f501..b21391d1640ef 100644 --- a/src/test/ui/terminal-width/flag-json.stderr +++ b/src/test/ui/terminal-width/flag-json.stderr @@ -24,7 +24,7 @@ This error occurs when an expression was used in a place where the compiler expected an expression of a different type. It can occur in several cases, the most common being when calling a function and passing an argument which has a different type than the matching type in the function declaration. -"},"level":"error","spans":[{"file_name":"$DIR/flag-json.rs","byte_start":244,"byte_end":246,"line_start":7,"line_end":7,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":" let _: () = 42;","highlight_start":17,"highlight_end":19}],"label":"expected `()`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/flag-json.rs","byte_start":239,"byte_end":241,"line_start":7,"line_end":7,"column_start":12,"column_end":14,"is_primary":false,"text":[{"text":" let _: () = 42;","highlight_start":12,"highlight_end":14}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0308]: mismatched types +"},"level":"error","spans":[{"file_name":"$DIR/flag-json.rs","byte_start":243,"byte_end":245,"line_start":7,"line_end":7,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":" let _: () = 42;","highlight_start":17,"highlight_end":19}],"label":"expected `()`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/flag-json.rs","byte_start":238,"byte_end":240,"line_start":7,"line_end":7,"column_start":12,"column_end":14,"is_primary":false,"text":[{"text":" let _: () = 42;","highlight_start":12,"highlight_end":14}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0308]: mismatched types --> $DIR/flag-json.rs:7:17 | LL | ..._: () = 42; From cd23af6793857f1b73ecd76764876c482f183d31 Mon Sep 17 00:00:00 2001 From: David Wood Date: Thu, 16 Jun 2022 16:39:11 +0100 Subject: [PATCH 2/3] session: `terminal-width` -> `output-width` Rename the `--terminal-width` flag to `--output-width` as the behaviour doesn't just apply to terminals (and so is slightly less accurate). Signed-off-by: David Wood --- compiler/rustc_errors/src/emitter.rs | 16 ++++++++-------- compiler/rustc_errors/src/json.rs | 16 ++++++++-------- compiler/rustc_session/src/config.rs | 12 ++++++------ compiler/rustc_session/src/options.rs | 6 +++--- compiler/rustc_session/src/session.rs | 6 +++--- src/librustdoc/config.rs | 8 ++++---- src/librustdoc/core.rs | 10 +++++----- src/librustdoc/lib.rs | 8 ++++---- .../output-default.stdout | 4 ++-- .../{terminal-width.rs => output-width.rs} | 2 +- ...terminal-width.stderr => output-width.stderr} | 4 ++-- src/test/ui/output-width/flag-human.rs | 9 +++++++++ .../flag-human.stderr | 0 src/test/ui/output-width/flag-json.rs | 9 +++++++++ .../flag-json.stderr | 2 +- .../non-1-width-unicode-multiline-label.rs | 0 .../non-1-width-unicode-multiline-label.stderr | 0 .../non-whitespace-trimming-2.rs | 0 .../non-whitespace-trimming-2.stderr | 0 .../non-whitespace-trimming-unicode.rs | 0 .../non-whitespace-trimming-unicode.stderr | 0 .../non-whitespace-trimming.rs | 0 .../non-whitespace-trimming.stderr | 0 .../tabs-trimming.rs | 0 .../tabs-trimming.stderr | 0 .../whitespace-trimming-2.rs | 0 .../whitespace-trimming-2.stderr | 0 .../whitespace-trimming.rs | 0 .../whitespace-trimming.stderr | 0 src/test/ui/terminal-width/flag-human.rs | 9 --------- src/test/ui/terminal-width/flag-json.rs | 9 --------- 31 files changed, 65 insertions(+), 65 deletions(-) rename src/test/rustdoc-ui/{terminal-width.rs => output-width.rs} (66%) rename src/test/rustdoc-ui/{terminal-width.stderr => output-width.stderr} (84%) create mode 100644 src/test/ui/output-width/flag-human.rs rename src/test/ui/{terminal-width => output-width}/flag-human.stderr (100%) create mode 100644 src/test/ui/output-width/flag-json.rs rename src/test/ui/{terminal-width => output-width}/flag-json.stderr (93%) rename src/test/ui/{terminal-width => output-width}/non-1-width-unicode-multiline-label.rs (100%) rename src/test/ui/{terminal-width => output-width}/non-1-width-unicode-multiline-label.stderr (100%) rename src/test/ui/{terminal-width => output-width}/non-whitespace-trimming-2.rs (100%) rename src/test/ui/{terminal-width => output-width}/non-whitespace-trimming-2.stderr (100%) rename src/test/ui/{terminal-width => output-width}/non-whitespace-trimming-unicode.rs (100%) rename src/test/ui/{terminal-width => output-width}/non-whitespace-trimming-unicode.stderr (100%) rename src/test/ui/{terminal-width => output-width}/non-whitespace-trimming.rs (100%) rename src/test/ui/{terminal-width => output-width}/non-whitespace-trimming.stderr (100%) rename src/test/ui/{terminal-width => output-width}/tabs-trimming.rs (100%) rename src/test/ui/{terminal-width => output-width}/tabs-trimming.stderr (100%) rename src/test/ui/{terminal-width => output-width}/whitespace-trimming-2.rs (100%) rename src/test/ui/{terminal-width => output-width}/whitespace-trimming-2.stderr (100%) rename src/test/ui/{terminal-width => output-width}/whitespace-trimming.rs (100%) rename src/test/ui/{terminal-width => output-width}/whitespace-trimming.stderr (100%) delete mode 100644 src/test/ui/terminal-width/flag-human.rs delete mode 100644 src/test/ui/terminal-width/flag-json.rs diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs index 6d74e9a9f2b9e..802cd1a165502 100644 --- a/compiler/rustc_errors/src/emitter.rs +++ b/compiler/rustc_errors/src/emitter.rs @@ -63,7 +63,7 @@ impl HumanReadableErrorType { bundle: Option>, fallback_bundle: LazyFallbackBundle, teach: bool, - terminal_width: Option, + output_width: Option, macro_backtrace: bool, ) -> EmitterWriter { let (short, color_config) = self.unzip(); @@ -76,7 +76,7 @@ impl HumanReadableErrorType { short, teach, color, - terminal_width, + output_width, macro_backtrace, ) } @@ -710,7 +710,7 @@ pub struct EmitterWriter { short_message: bool, teach: bool, ui_testing: bool, - terminal_width: Option, + output_width: Option, macro_backtrace: bool, } @@ -730,7 +730,7 @@ impl EmitterWriter { fallback_bundle: LazyFallbackBundle, short_message: bool, teach: bool, - terminal_width: Option, + output_width: Option, macro_backtrace: bool, ) -> EmitterWriter { let dst = Destination::from_stderr(color_config); @@ -742,7 +742,7 @@ impl EmitterWriter { short_message, teach, ui_testing: false, - terminal_width, + output_width, macro_backtrace, } } @@ -755,7 +755,7 @@ impl EmitterWriter { short_message: bool, teach: bool, colored: bool, - terminal_width: Option, + output_width: Option, macro_backtrace: bool, ) -> EmitterWriter { EmitterWriter { @@ -766,7 +766,7 @@ impl EmitterWriter { short_message, teach, ui_testing: false, - terminal_width, + output_width, macro_backtrace, } } @@ -1615,7 +1615,7 @@ impl EmitterWriter { width_offset + annotated_file.multiline_depth + 1 }; - let column_width = if let Some(width) = self.terminal_width { + let column_width = if let Some(width) = self.output_width { width.saturating_sub(code_offset) } else if self.ui_testing { DEFAULT_COLUMN_WIDTH diff --git a/compiler/rustc_errors/src/json.rs b/compiler/rustc_errors/src/json.rs index d4d1491c16945..1e87e70922b73 100644 --- a/compiler/rustc_errors/src/json.rs +++ b/compiler/rustc_errors/src/json.rs @@ -42,7 +42,7 @@ pub struct JsonEmitter { pretty: bool, ui_testing: bool, json_rendered: HumanReadableErrorType, - terminal_width: Option, + output_width: Option, macro_backtrace: bool, } @@ -54,7 +54,7 @@ impl JsonEmitter { fallback_bundle: LazyFallbackBundle, pretty: bool, json_rendered: HumanReadableErrorType, - terminal_width: Option, + output_width: Option, macro_backtrace: bool, ) -> JsonEmitter { JsonEmitter { @@ -66,7 +66,7 @@ impl JsonEmitter { pretty, ui_testing: false, json_rendered, - terminal_width, + output_width, macro_backtrace, } } @@ -76,7 +76,7 @@ impl JsonEmitter { json_rendered: HumanReadableErrorType, fluent_bundle: Option>, fallback_bundle: LazyFallbackBundle, - terminal_width: Option, + output_width: Option, macro_backtrace: bool, ) -> JsonEmitter { let file_path_mapping = FilePathMapping::empty(); @@ -87,7 +87,7 @@ impl JsonEmitter { fallback_bundle, pretty, json_rendered, - terminal_width, + output_width, macro_backtrace, ) } @@ -100,7 +100,7 @@ impl JsonEmitter { fallback_bundle: LazyFallbackBundle, pretty: bool, json_rendered: HumanReadableErrorType, - terminal_width: Option, + output_width: Option, macro_backtrace: bool, ) -> JsonEmitter { JsonEmitter { @@ -112,7 +112,7 @@ impl JsonEmitter { pretty, ui_testing: false, json_rendered, - terminal_width, + output_width, macro_backtrace, } } @@ -345,7 +345,7 @@ impl Diagnostic { je.fluent_bundle.clone(), je.fallback_bundle.clone(), false, - je.terminal_width, + je.output_width, je.macro_backtrace, ) .ui_testing(je.ui_testing) diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs index 2650ad5287902..bad9fb576bf3b 100644 --- a/compiler/rustc_session/src/config.rs +++ b/compiler/rustc_session/src/config.rs @@ -726,7 +726,7 @@ impl Default for Options { prints: Vec::new(), cg: Default::default(), error_format: ErrorOutputType::default(), - terminal_width: None, + output_width: None, externs: Externs(BTreeMap::new()), crate_name: None, libs: Vec::new(), @@ -1430,8 +1430,8 @@ pub fn rustc_optgroups() -> Vec { ), opt::opt_s( "", - "terminal-width", - "Inform rustc of the width of the terminal so that errors can be truncated", + "output-width", + "Inform rustc of the width of the output so that errors can be truncated to fit", "WIDTH", ), opt::multi_s( @@ -2209,8 +2209,8 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options { let error_format = parse_error_format(matches, color, json_rendered); - let terminal_width = matches.opt_get("terminal-width").unwrap_or_else(|_| { - early_error(error_format, "`--terminal-width` must be an positive integer"); + let output_width = matches.opt_get("output-width").unwrap_or_else(|_| { + early_error(error_format, "`--output-width` must be an positive integer"); }); let unparsed_crate_types = matches.opt_strs("crate-type"); @@ -2485,7 +2485,7 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options { prints, cg, error_format, - terminal_width, + output_width, externs, unstable_features: UnstableFeatures::from_environment(crate_name.as_deref()), crate_name, diff --git a/compiler/rustc_session/src/options.rs b/compiler/rustc_session/src/options.rs index 80e811bc1a745..b544965f6f23a 100644 --- a/compiler/rustc_session/src/options.rs +++ b/compiler/rustc_session/src/options.rs @@ -170,7 +170,7 @@ top_level_options!( test: bool [TRACKED], error_format: ErrorOutputType [UNTRACKED], - terminal_width: Option [UNTRACKED], + output_width: Option [UNTRACKED], /// If `Some`, enable incremental compilation, using the given /// directory to store intermediate results. @@ -1389,6 +1389,8 @@ options! { "panic strategy for out-of-memory handling"), osx_rpath_install_name: bool = (false, parse_bool, [TRACKED], "pass `-install_name @rpath/...` to the macOS linker (default: no)"), + output_width: Option = (None, parse_opt_number, [UNTRACKED], + "set the current output width for diagnostic truncation"), panic_abort_tests: bool = (false, parse_bool, [TRACKED], "support compiling tests with panic=abort (default: no)"), panic_in_drop: PanicStrategy = (PanicStrategy::Unwind, parse_panic_strategy, [TRACKED], @@ -1515,8 +1517,6 @@ options! { "show extended diagnostic help (default: no)"), temps_dir: Option = (None, parse_opt_string, [UNTRACKED], "the directory the intermediate files are written to"), - terminal_width: Option = (None, parse_opt_number, [UNTRACKED], - "set the current terminal width"), // Diagnostics are considered side-effects of a query (see `QuerySideEffects`) and are saved // alongside query results and changes to translation options can affect diagnostics - so // translation options should be tracked. diff --git a/compiler/rustc_session/src/session.rs b/compiler/rustc_session/src/session.rs index b5a72ed20c16a..e22b7a5539f7d 100644 --- a/compiler/rustc_session/src/session.rs +++ b/compiler/rustc_session/src/session.rs @@ -1162,7 +1162,7 @@ fn default_emitter( fallback_bundle, short, sopts.debugging_opts.teach, - sopts.terminal_width, + sopts.output_width, macro_backtrace, ), Some(dst) => EmitterWriter::new( @@ -1188,7 +1188,7 @@ fn default_emitter( fallback_bundle, pretty, json_rendered, - sopts.terminal_width, + sopts.output_width, macro_backtrace, ) .ui_testing(sopts.debugging_opts.ui_testing), @@ -1202,7 +1202,7 @@ fn default_emitter( fallback_bundle, pretty, json_rendered, - sopts.terminal_width, + sopts.output_width, macro_backtrace, ) .ui_testing(sopts.debugging_opts.ui_testing), diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs index 0c913f8a07f9a..0285f15dd76fa 100644 --- a/src/librustdoc/config.rs +++ b/src/librustdoc/config.rs @@ -74,7 +74,7 @@ pub(crate) struct Options { /// How to format errors and warnings. pub(crate) error_format: ErrorOutputType, /// Width of terminal to truncate errors appropriately. - pub(crate) terminal_width: Option, + pub(crate) output_width: Option, /// Library search paths to hand to the compiler. pub(crate) libs: Vec, /// Library search paths strings to hand to the compiler. @@ -336,12 +336,12 @@ impl Options { let config::JsonConfig { json_rendered, json_unused_externs, .. } = config::parse_json(matches); let error_format = config::parse_error_format(matches, color, json_rendered); - let terminal_width = matches.opt_get("terminal-width").unwrap_or_default(); + let output_width = matches.opt_get("output-width").unwrap_or_default(); let codegen_options = CodegenOptions::build(matches, error_format); let debugging_opts = DebuggingOptions::build(matches, error_format); - let diag = new_handler(error_format, None, terminal_width, &debugging_opts); + let diag = new_handler(error_format, None, output_width, &debugging_opts); // check for deprecated options check_deprecated_options(matches, &diag); @@ -705,7 +705,7 @@ impl Options { input, proc_macro_crate, error_format, - terminal_width, + output_width, libs, lib_strs, externs, diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 7ed7243cb99c4..d85e9d974dbcd 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -154,7 +154,7 @@ impl<'tcx> DocContext<'tcx> { pub(crate) fn new_handler( error_format: ErrorOutputType, source_map: Option>, - terminal_width: Option, + output_width: Option, debugging_opts: &DebuggingOptions, ) -> rustc_errors::Handler { let fallback_bundle = @@ -170,7 +170,7 @@ pub(crate) fn new_handler( fallback_bundle, short, debugging_opts.teach, - terminal_width, + output_width, false, ) .ui_testing(debugging_opts.ui_testing), @@ -188,7 +188,7 @@ pub(crate) fn new_handler( fallback_bundle, pretty, json_rendered, - terminal_width, + output_width, false, ) .ui_testing(debugging_opts.ui_testing), @@ -209,7 +209,7 @@ pub(crate) fn create_config( crate_name, proc_macro_crate, error_format, - terminal_width, + output_width, libs, externs, mut cfgs, @@ -268,7 +268,7 @@ pub(crate) fn create_config( actually_rustdoc: true, debugging_opts, error_format, - terminal_width, + output_width, edition, describe_lints, crate_name, diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index d42bb02e0323e..b0be3502baed3 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -462,11 +462,11 @@ fn opts() -> Vec { "human|json|short", ) }), - unstable("terminal-width", |o| { + unstable("output-width", |o| { o.optopt( "", - "terminal-width", - "Provide width of the terminal for truncated error messages", + "output-width", + "Provide width of the output for truncated error messages", "WIDTH", ) }), @@ -744,7 +744,7 @@ fn main_options(options: config::Options) -> MainResult { let diag = core::new_handler( options.error_format, None, - options.terminal_width, + options.output_width, &options.debugging_opts, ); diff --git a/src/test/run-make/issue-88756-default-output/output-default.stdout b/src/test/run-make/issue-88756-default-output/output-default.stdout index 6ca2143efbdea..64b31adc63e4d 100644 --- a/src/test/run-make/issue-88756-default-output/output-default.stdout +++ b/src/test/run-make/issue-88756-default-output/output-default.stdout @@ -110,8 +110,8 @@ Options: never = never colorize output --error-format human|json|short How errors and other messages are produced - --terminal-width WIDTH - Provide width of the terminal for truncated error + --output-width WIDTH + Provide width of the output for truncated error messages --json CONFIG Configure the structure of JSON diagnostics --disable-minification diff --git a/src/test/rustdoc-ui/terminal-width.rs b/src/test/rustdoc-ui/output-width.rs similarity index 66% rename from src/test/rustdoc-ui/terminal-width.rs rename to src/test/rustdoc-ui/output-width.rs index 72544d7ee53a1..9fb680474475c 100644 --- a/src/test/rustdoc-ui/terminal-width.rs +++ b/src/test/rustdoc-ui/output-width.rs @@ -1,4 +1,4 @@ -// compile-flags: -Zunstable-options --terminal-width=10 +// compile-flags: -Zunstable-options --output-width=10 #![deny(rustdoc::bare_urls)] /// This is a long line that contains a http://link.com diff --git a/src/test/rustdoc-ui/terminal-width.stderr b/src/test/rustdoc-ui/output-width.stderr similarity index 84% rename from src/test/rustdoc-ui/terminal-width.stderr rename to src/test/rustdoc-ui/output-width.stderr index 16ab606eb9902..dc790530300cf 100644 --- a/src/test/rustdoc-ui/terminal-width.stderr +++ b/src/test/rustdoc-ui/output-width.stderr @@ -1,11 +1,11 @@ error: this URL is not a hyperlink - --> $DIR/terminal-width.rs:4:41 + --> $DIR/output-width.rs:4:41 | LL | ... a http://link.com | ^^^^^^^^^^^^^^^ help: use an automatic link instead: `` | note: the lint level is defined here - --> $DIR/terminal-width.rs:2:9 + --> $DIR/output-width.rs:2:9 | LL | ...ny(rustdoc::bare_url... | ^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/output-width/flag-human.rs b/src/test/ui/output-width/flag-human.rs new file mode 100644 index 0000000000000..44e9ba044230a --- /dev/null +++ b/src/test/ui/output-width/flag-human.rs @@ -0,0 +1,9 @@ +// compile-flags: --output-width=20 + +// This test checks that `-Z output-width` effects the human error output by restricting it to an +// arbitrarily low value so that the effect is visible. + +fn main() { + let _: () = 42; + //~^ ERROR mismatched types +} diff --git a/src/test/ui/terminal-width/flag-human.stderr b/src/test/ui/output-width/flag-human.stderr similarity index 100% rename from src/test/ui/terminal-width/flag-human.stderr rename to src/test/ui/output-width/flag-human.stderr diff --git a/src/test/ui/output-width/flag-json.rs b/src/test/ui/output-width/flag-json.rs new file mode 100644 index 0000000000000..ec01dcb88189a --- /dev/null +++ b/src/test/ui/output-width/flag-json.rs @@ -0,0 +1,9 @@ +// compile-flags: --output-width=20 --error-format=json + +// This test checks that `-Z output-width` effects the JSON error output by restricting it to an +// arbitrarily low value so that the effect is visible. + +fn main() { + let _: () = 42; + //~^ ERROR arguments to this function are incorrect +} diff --git a/src/test/ui/terminal-width/flag-json.stderr b/src/test/ui/output-width/flag-json.stderr similarity index 93% rename from src/test/ui/terminal-width/flag-json.stderr rename to src/test/ui/output-width/flag-json.stderr index b21391d1640ef..097ca1d6e1780 100644 --- a/src/test/ui/terminal-width/flag-json.stderr +++ b/src/test/ui/output-width/flag-json.stderr @@ -24,7 +24,7 @@ This error occurs when an expression was used in a place where the compiler expected an expression of a different type. It can occur in several cases, the most common being when calling a function and passing an argument which has a different type than the matching type in the function declaration. -"},"level":"error","spans":[{"file_name":"$DIR/flag-json.rs","byte_start":243,"byte_end":245,"line_start":7,"line_end":7,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":" let _: () = 42;","highlight_start":17,"highlight_end":19}],"label":"expected `()`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/flag-json.rs","byte_start":238,"byte_end":240,"line_start":7,"line_end":7,"column_start":12,"column_end":14,"is_primary":false,"text":[{"text":" let _: () = 42;","highlight_start":12,"highlight_end":14}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0308]: mismatched types +"},"level":"error","spans":[{"file_name":"$DIR/flag-json.rs","byte_start":239,"byte_end":241,"line_start":7,"line_end":7,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":" let _: () = 42;","highlight_start":17,"highlight_end":19}],"label":"expected `()`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/flag-json.rs","byte_start":234,"byte_end":236,"line_start":7,"line_end":7,"column_start":12,"column_end":14,"is_primary":false,"text":[{"text":" let _: () = 42;","highlight_start":12,"highlight_end":14}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0308]: mismatched types --> $DIR/flag-json.rs:7:17 | LL | ..._: () = 42; diff --git a/src/test/ui/terminal-width/non-1-width-unicode-multiline-label.rs b/src/test/ui/output-width/non-1-width-unicode-multiline-label.rs similarity index 100% rename from src/test/ui/terminal-width/non-1-width-unicode-multiline-label.rs rename to src/test/ui/output-width/non-1-width-unicode-multiline-label.rs diff --git a/src/test/ui/terminal-width/non-1-width-unicode-multiline-label.stderr b/src/test/ui/output-width/non-1-width-unicode-multiline-label.stderr similarity index 100% rename from src/test/ui/terminal-width/non-1-width-unicode-multiline-label.stderr rename to src/test/ui/output-width/non-1-width-unicode-multiline-label.stderr diff --git a/src/test/ui/terminal-width/non-whitespace-trimming-2.rs b/src/test/ui/output-width/non-whitespace-trimming-2.rs similarity index 100% rename from src/test/ui/terminal-width/non-whitespace-trimming-2.rs rename to src/test/ui/output-width/non-whitespace-trimming-2.rs diff --git a/src/test/ui/terminal-width/non-whitespace-trimming-2.stderr b/src/test/ui/output-width/non-whitespace-trimming-2.stderr similarity index 100% rename from src/test/ui/terminal-width/non-whitespace-trimming-2.stderr rename to src/test/ui/output-width/non-whitespace-trimming-2.stderr diff --git a/src/test/ui/terminal-width/non-whitespace-trimming-unicode.rs b/src/test/ui/output-width/non-whitespace-trimming-unicode.rs similarity index 100% rename from src/test/ui/terminal-width/non-whitespace-trimming-unicode.rs rename to src/test/ui/output-width/non-whitespace-trimming-unicode.rs diff --git a/src/test/ui/terminal-width/non-whitespace-trimming-unicode.stderr b/src/test/ui/output-width/non-whitespace-trimming-unicode.stderr similarity index 100% rename from src/test/ui/terminal-width/non-whitespace-trimming-unicode.stderr rename to src/test/ui/output-width/non-whitespace-trimming-unicode.stderr diff --git a/src/test/ui/terminal-width/non-whitespace-trimming.rs b/src/test/ui/output-width/non-whitespace-trimming.rs similarity index 100% rename from src/test/ui/terminal-width/non-whitespace-trimming.rs rename to src/test/ui/output-width/non-whitespace-trimming.rs diff --git a/src/test/ui/terminal-width/non-whitespace-trimming.stderr b/src/test/ui/output-width/non-whitespace-trimming.stderr similarity index 100% rename from src/test/ui/terminal-width/non-whitespace-trimming.stderr rename to src/test/ui/output-width/non-whitespace-trimming.stderr diff --git a/src/test/ui/terminal-width/tabs-trimming.rs b/src/test/ui/output-width/tabs-trimming.rs similarity index 100% rename from src/test/ui/terminal-width/tabs-trimming.rs rename to src/test/ui/output-width/tabs-trimming.rs diff --git a/src/test/ui/terminal-width/tabs-trimming.stderr b/src/test/ui/output-width/tabs-trimming.stderr similarity index 100% rename from src/test/ui/terminal-width/tabs-trimming.stderr rename to src/test/ui/output-width/tabs-trimming.stderr diff --git a/src/test/ui/terminal-width/whitespace-trimming-2.rs b/src/test/ui/output-width/whitespace-trimming-2.rs similarity index 100% rename from src/test/ui/terminal-width/whitespace-trimming-2.rs rename to src/test/ui/output-width/whitespace-trimming-2.rs diff --git a/src/test/ui/terminal-width/whitespace-trimming-2.stderr b/src/test/ui/output-width/whitespace-trimming-2.stderr similarity index 100% rename from src/test/ui/terminal-width/whitespace-trimming-2.stderr rename to src/test/ui/output-width/whitespace-trimming-2.stderr diff --git a/src/test/ui/terminal-width/whitespace-trimming.rs b/src/test/ui/output-width/whitespace-trimming.rs similarity index 100% rename from src/test/ui/terminal-width/whitespace-trimming.rs rename to src/test/ui/output-width/whitespace-trimming.rs diff --git a/src/test/ui/terminal-width/whitespace-trimming.stderr b/src/test/ui/output-width/whitespace-trimming.stderr similarity index 100% rename from src/test/ui/terminal-width/whitespace-trimming.stderr rename to src/test/ui/output-width/whitespace-trimming.stderr diff --git a/src/test/ui/terminal-width/flag-human.rs b/src/test/ui/terminal-width/flag-human.rs deleted file mode 100644 index 4ae960ef967b9..0000000000000 --- a/src/test/ui/terminal-width/flag-human.rs +++ /dev/null @@ -1,9 +0,0 @@ -// compile-flags: --terminal-width=20 - -// This test checks that `-Z terminal-width` effects the human error output by restricting it to an -// arbitrarily low value so that the effect is visible. - -fn main() { - let _: () = 42; - //~^ ERROR mismatched types -} diff --git a/src/test/ui/terminal-width/flag-json.rs b/src/test/ui/terminal-width/flag-json.rs deleted file mode 100644 index d4e51e80347d5..0000000000000 --- a/src/test/ui/terminal-width/flag-json.rs +++ /dev/null @@ -1,9 +0,0 @@ -// compile-flags: --terminal-width=20 --error-format=json - -// This test checks that `-Z terminal-width` effects the JSON error output by restricting it to an -// arbitrarily low value so that the effect is visible. - -fn main() { - let _: () = 42; - //~^ ERROR arguments to this function are incorrect -} From 44c1fcc04dad7c59d1af5c7759afd121951e195c Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 6 Jul 2022 11:57:41 +0100 Subject: [PATCH 3/3] session: `output-width` -> `diagnostic-width` Rename the `--output-width` flag to `--diagnostic-width` as this appears to be the preferred name within the compiler team. Signed-off-by: David Wood --- compiler/rustc_errors/src/emitter.rs | 16 ++++++++-------- compiler/rustc_errors/src/json.rs | 16 ++++++++-------- compiler/rustc_session/src/config.rs | 12 ++++++------ compiler/rustc_session/src/options.rs | 4 ++-- compiler/rustc_session/src/session.rs | 8 ++++---- src/librustdoc/config.rs | 10 +++++----- src/librustdoc/core.rs | 10 +++++----- src/librustdoc/lib.rs | 6 +++--- .../output-default.stdout | 2 +- .../{output-width.rs => diagnostic-width.rs} | 2 +- ...tput-width.stderr => diagnostic-width.stderr} | 4 ++-- .../flag-human.rs | 2 +- .../flag-human.stderr | 0 .../flag-json.rs | 2 +- .../flag-json.stderr | 2 +- .../non-1-width-unicode-multiline-label.rs | 0 .../non-1-width-unicode-multiline-label.stderr | 0 .../non-whitespace-trimming-2.rs | 0 .../non-whitespace-trimming-2.stderr | 0 .../non-whitespace-trimming-unicode.rs | 0 .../non-whitespace-trimming-unicode.stderr | 0 .../non-whitespace-trimming.rs | 0 .../non-whitespace-trimming.stderr | 0 .../tabs-trimming.rs | 0 .../tabs-trimming.stderr | 0 .../whitespace-trimming-2.rs | 0 .../whitespace-trimming-2.stderr | 0 .../whitespace-trimming.rs | 0 .../whitespace-trimming.stderr | 0 29 files changed, 48 insertions(+), 48 deletions(-) rename src/test/rustdoc-ui/{output-width.rs => diagnostic-width.rs} (65%) rename src/test/rustdoc-ui/{output-width.stderr => diagnostic-width.stderr} (83%) rename src/test/ui/{output-width => diagnostic-width}/flag-human.rs (84%) rename src/test/ui/{output-width => diagnostic-width}/flag-human.stderr (100%) rename src/test/ui/{output-width => diagnostic-width}/flag-json.rs (80%) rename src/test/ui/{output-width => diagnostic-width}/flag-json.stderr (93%) rename src/test/ui/{output-width => diagnostic-width}/non-1-width-unicode-multiline-label.rs (100%) rename src/test/ui/{output-width => diagnostic-width}/non-1-width-unicode-multiline-label.stderr (100%) rename src/test/ui/{output-width => diagnostic-width}/non-whitespace-trimming-2.rs (100%) rename src/test/ui/{output-width => diagnostic-width}/non-whitespace-trimming-2.stderr (100%) rename src/test/ui/{output-width => diagnostic-width}/non-whitespace-trimming-unicode.rs (100%) rename src/test/ui/{output-width => diagnostic-width}/non-whitespace-trimming-unicode.stderr (100%) rename src/test/ui/{output-width => diagnostic-width}/non-whitespace-trimming.rs (100%) rename src/test/ui/{output-width => diagnostic-width}/non-whitespace-trimming.stderr (100%) rename src/test/ui/{output-width => diagnostic-width}/tabs-trimming.rs (100%) rename src/test/ui/{output-width => diagnostic-width}/tabs-trimming.stderr (100%) rename src/test/ui/{output-width => diagnostic-width}/whitespace-trimming-2.rs (100%) rename src/test/ui/{output-width => diagnostic-width}/whitespace-trimming-2.stderr (100%) rename src/test/ui/{output-width => diagnostic-width}/whitespace-trimming.rs (100%) rename src/test/ui/{output-width => diagnostic-width}/whitespace-trimming.stderr (100%) diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs index 802cd1a165502..85ea8eb393782 100644 --- a/compiler/rustc_errors/src/emitter.rs +++ b/compiler/rustc_errors/src/emitter.rs @@ -63,7 +63,7 @@ impl HumanReadableErrorType { bundle: Option>, fallback_bundle: LazyFallbackBundle, teach: bool, - output_width: Option, + diagnostic_width: Option, macro_backtrace: bool, ) -> EmitterWriter { let (short, color_config) = self.unzip(); @@ -76,7 +76,7 @@ impl HumanReadableErrorType { short, teach, color, - output_width, + diagnostic_width, macro_backtrace, ) } @@ -710,7 +710,7 @@ pub struct EmitterWriter { short_message: bool, teach: bool, ui_testing: bool, - output_width: Option, + diagnostic_width: Option, macro_backtrace: bool, } @@ -730,7 +730,7 @@ impl EmitterWriter { fallback_bundle: LazyFallbackBundle, short_message: bool, teach: bool, - output_width: Option, + diagnostic_width: Option, macro_backtrace: bool, ) -> EmitterWriter { let dst = Destination::from_stderr(color_config); @@ -742,7 +742,7 @@ impl EmitterWriter { short_message, teach, ui_testing: false, - output_width, + diagnostic_width, macro_backtrace, } } @@ -755,7 +755,7 @@ impl EmitterWriter { short_message: bool, teach: bool, colored: bool, - output_width: Option, + diagnostic_width: Option, macro_backtrace: bool, ) -> EmitterWriter { EmitterWriter { @@ -766,7 +766,7 @@ impl EmitterWriter { short_message, teach, ui_testing: false, - output_width, + diagnostic_width, macro_backtrace, } } @@ -1615,7 +1615,7 @@ impl EmitterWriter { width_offset + annotated_file.multiline_depth + 1 }; - let column_width = if let Some(width) = self.output_width { + let column_width = if let Some(width) = self.diagnostic_width { width.saturating_sub(code_offset) } else if self.ui_testing { DEFAULT_COLUMN_WIDTH diff --git a/compiler/rustc_errors/src/json.rs b/compiler/rustc_errors/src/json.rs index 1e87e70922b73..b8cd334b4c6c6 100644 --- a/compiler/rustc_errors/src/json.rs +++ b/compiler/rustc_errors/src/json.rs @@ -42,7 +42,7 @@ pub struct JsonEmitter { pretty: bool, ui_testing: bool, json_rendered: HumanReadableErrorType, - output_width: Option, + diagnostic_width: Option, macro_backtrace: bool, } @@ -54,7 +54,7 @@ impl JsonEmitter { fallback_bundle: LazyFallbackBundle, pretty: bool, json_rendered: HumanReadableErrorType, - output_width: Option, + diagnostic_width: Option, macro_backtrace: bool, ) -> JsonEmitter { JsonEmitter { @@ -66,7 +66,7 @@ impl JsonEmitter { pretty, ui_testing: false, json_rendered, - output_width, + diagnostic_width, macro_backtrace, } } @@ -76,7 +76,7 @@ impl JsonEmitter { json_rendered: HumanReadableErrorType, fluent_bundle: Option>, fallback_bundle: LazyFallbackBundle, - output_width: Option, + diagnostic_width: Option, macro_backtrace: bool, ) -> JsonEmitter { let file_path_mapping = FilePathMapping::empty(); @@ -87,7 +87,7 @@ impl JsonEmitter { fallback_bundle, pretty, json_rendered, - output_width, + diagnostic_width, macro_backtrace, ) } @@ -100,7 +100,7 @@ impl JsonEmitter { fallback_bundle: LazyFallbackBundle, pretty: bool, json_rendered: HumanReadableErrorType, - output_width: Option, + diagnostic_width: Option, macro_backtrace: bool, ) -> JsonEmitter { JsonEmitter { @@ -112,7 +112,7 @@ impl JsonEmitter { pretty, ui_testing: false, json_rendered, - output_width, + diagnostic_width, macro_backtrace, } } @@ -345,7 +345,7 @@ impl Diagnostic { je.fluent_bundle.clone(), je.fallback_bundle.clone(), false, - je.output_width, + je.diagnostic_width, je.macro_backtrace, ) .ui_testing(je.ui_testing) diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs index bad9fb576bf3b..b7da0f229420b 100644 --- a/compiler/rustc_session/src/config.rs +++ b/compiler/rustc_session/src/config.rs @@ -726,7 +726,7 @@ impl Default for Options { prints: Vec::new(), cg: Default::default(), error_format: ErrorOutputType::default(), - output_width: None, + diagnostic_width: None, externs: Externs(BTreeMap::new()), crate_name: None, libs: Vec::new(), @@ -1430,8 +1430,8 @@ pub fn rustc_optgroups() -> Vec { ), opt::opt_s( "", - "output-width", - "Inform rustc of the width of the output so that errors can be truncated to fit", + "diagnostic-width", + "Inform rustc of the width of the output so that diagnostics can be truncated to fit", "WIDTH", ), opt::multi_s( @@ -2209,8 +2209,8 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options { let error_format = parse_error_format(matches, color, json_rendered); - let output_width = matches.opt_get("output-width").unwrap_or_else(|_| { - early_error(error_format, "`--output-width` must be an positive integer"); + let diagnostic_width = matches.opt_get("diagnostic-width").unwrap_or_else(|_| { + early_error(error_format, "`--diagnostic-width` must be an positive integer"); }); let unparsed_crate_types = matches.opt_strs("crate-type"); @@ -2485,7 +2485,7 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options { prints, cg, error_format, - output_width, + diagnostic_width, externs, unstable_features: UnstableFeatures::from_environment(crate_name.as_deref()), crate_name, diff --git a/compiler/rustc_session/src/options.rs b/compiler/rustc_session/src/options.rs index b544965f6f23a..b0c74ffb6dcc1 100644 --- a/compiler/rustc_session/src/options.rs +++ b/compiler/rustc_session/src/options.rs @@ -170,7 +170,7 @@ top_level_options!( test: bool [TRACKED], error_format: ErrorOutputType [UNTRACKED], - output_width: Option [UNTRACKED], + diagnostic_width: Option [UNTRACKED], /// If `Some`, enable incremental compilation, using the given /// directory to store intermediate results. @@ -1389,7 +1389,7 @@ options! { "panic strategy for out-of-memory handling"), osx_rpath_install_name: bool = (false, parse_bool, [TRACKED], "pass `-install_name @rpath/...` to the macOS linker (default: no)"), - output_width: Option = (None, parse_opt_number, [UNTRACKED], + diagnostic_width: Option = (None, parse_opt_number, [UNTRACKED], "set the current output width for diagnostic truncation"), panic_abort_tests: bool = (false, parse_bool, [TRACKED], "support compiling tests with panic=abort (default: no)"), diff --git a/compiler/rustc_session/src/session.rs b/compiler/rustc_session/src/session.rs index e22b7a5539f7d..52b9ee9471802 100644 --- a/compiler/rustc_session/src/session.rs +++ b/compiler/rustc_session/src/session.rs @@ -1162,7 +1162,7 @@ fn default_emitter( fallback_bundle, short, sopts.debugging_opts.teach, - sopts.output_width, + sopts.diagnostic_width, macro_backtrace, ), Some(dst) => EmitterWriter::new( @@ -1173,7 +1173,7 @@ fn default_emitter( short, false, // no teach messages when writing to a buffer false, // no colors when writing to a buffer - None, // no terminal width + None, // no diagnostic width macro_backtrace, ), }; @@ -1188,7 +1188,7 @@ fn default_emitter( fallback_bundle, pretty, json_rendered, - sopts.output_width, + sopts.diagnostic_width, macro_backtrace, ) .ui_testing(sopts.debugging_opts.ui_testing), @@ -1202,7 +1202,7 @@ fn default_emitter( fallback_bundle, pretty, json_rendered, - sopts.output_width, + sopts.diagnostic_width, macro_backtrace, ) .ui_testing(sopts.debugging_opts.ui_testing), diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs index 0285f15dd76fa..f0b54cb444de2 100644 --- a/src/librustdoc/config.rs +++ b/src/librustdoc/config.rs @@ -73,8 +73,8 @@ pub(crate) struct Options { pub(crate) proc_macro_crate: bool, /// How to format errors and warnings. pub(crate) error_format: ErrorOutputType, - /// Width of terminal to truncate errors appropriately. - pub(crate) output_width: Option, + /// Width of output buffer to truncate errors appropriately. + pub(crate) diagnostic_width: Option, /// Library search paths to hand to the compiler. pub(crate) libs: Vec, /// Library search paths strings to hand to the compiler. @@ -336,12 +336,12 @@ impl Options { let config::JsonConfig { json_rendered, json_unused_externs, .. } = config::parse_json(matches); let error_format = config::parse_error_format(matches, color, json_rendered); - let output_width = matches.opt_get("output-width").unwrap_or_default(); + let diagnostic_width = matches.opt_get("diagnostic-width").unwrap_or_default(); let codegen_options = CodegenOptions::build(matches, error_format); let debugging_opts = DebuggingOptions::build(matches, error_format); - let diag = new_handler(error_format, None, output_width, &debugging_opts); + let diag = new_handler(error_format, None, diagnostic_width, &debugging_opts); // check for deprecated options check_deprecated_options(matches, &diag); @@ -705,7 +705,7 @@ impl Options { input, proc_macro_crate, error_format, - output_width, + diagnostic_width, libs, lib_strs, externs, diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index d85e9d974dbcd..8c494ee28cc1f 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -154,7 +154,7 @@ impl<'tcx> DocContext<'tcx> { pub(crate) fn new_handler( error_format: ErrorOutputType, source_map: Option>, - output_width: Option, + diagnostic_width: Option, debugging_opts: &DebuggingOptions, ) -> rustc_errors::Handler { let fallback_bundle = @@ -170,7 +170,7 @@ pub(crate) fn new_handler( fallback_bundle, short, debugging_opts.teach, - output_width, + diagnostic_width, false, ) .ui_testing(debugging_opts.ui_testing), @@ -188,7 +188,7 @@ pub(crate) fn new_handler( fallback_bundle, pretty, json_rendered, - output_width, + diagnostic_width, false, ) .ui_testing(debugging_opts.ui_testing), @@ -209,7 +209,7 @@ pub(crate) fn create_config( crate_name, proc_macro_crate, error_format, - output_width, + diagnostic_width, libs, externs, mut cfgs, @@ -268,7 +268,7 @@ pub(crate) fn create_config( actually_rustdoc: true, debugging_opts, error_format, - output_width, + diagnostic_width, edition, describe_lints, crate_name, diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index b0be3502baed3..0d3ec7ecb6448 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -462,10 +462,10 @@ fn opts() -> Vec { "human|json|short", ) }), - unstable("output-width", |o| { + unstable("diagnostic-width", |o| { o.optopt( "", - "output-width", + "diagnostic-width", "Provide width of the output for truncated error messages", "WIDTH", ) @@ -744,7 +744,7 @@ fn main_options(options: config::Options) -> MainResult { let diag = core::new_handler( options.error_format, None, - options.output_width, + options.diagnostic_width, &options.debugging_opts, ); diff --git a/src/test/run-make/issue-88756-default-output/output-default.stdout b/src/test/run-make/issue-88756-default-output/output-default.stdout index 64b31adc63e4d..08877af928657 100644 --- a/src/test/run-make/issue-88756-default-output/output-default.stdout +++ b/src/test/run-make/issue-88756-default-output/output-default.stdout @@ -110,7 +110,7 @@ Options: never = never colorize output --error-format human|json|short How errors and other messages are produced - --output-width WIDTH + --diagnostic-width WIDTH Provide width of the output for truncated error messages --json CONFIG Configure the structure of JSON diagnostics diff --git a/src/test/rustdoc-ui/output-width.rs b/src/test/rustdoc-ui/diagnostic-width.rs similarity index 65% rename from src/test/rustdoc-ui/output-width.rs rename to src/test/rustdoc-ui/diagnostic-width.rs index 9fb680474475c..61961d5ec710e 100644 --- a/src/test/rustdoc-ui/output-width.rs +++ b/src/test/rustdoc-ui/diagnostic-width.rs @@ -1,4 +1,4 @@ -// compile-flags: -Zunstable-options --output-width=10 +// compile-flags: -Zunstable-options --diagnostic-width=10 #![deny(rustdoc::bare_urls)] /// This is a long line that contains a http://link.com diff --git a/src/test/rustdoc-ui/output-width.stderr b/src/test/rustdoc-ui/diagnostic-width.stderr similarity index 83% rename from src/test/rustdoc-ui/output-width.stderr rename to src/test/rustdoc-ui/diagnostic-width.stderr index dc790530300cf..fed049d2b37bc 100644 --- a/src/test/rustdoc-ui/output-width.stderr +++ b/src/test/rustdoc-ui/diagnostic-width.stderr @@ -1,11 +1,11 @@ error: this URL is not a hyperlink - --> $DIR/output-width.rs:4:41 + --> $DIR/diagnostic-width.rs:4:41 | LL | ... a http://link.com | ^^^^^^^^^^^^^^^ help: use an automatic link instead: `` | note: the lint level is defined here - --> $DIR/output-width.rs:2:9 + --> $DIR/diagnostic-width.rs:2:9 | LL | ...ny(rustdoc::bare_url... | ^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/output-width/flag-human.rs b/src/test/ui/diagnostic-width/flag-human.rs similarity index 84% rename from src/test/ui/output-width/flag-human.rs rename to src/test/ui/diagnostic-width/flag-human.rs index 44e9ba044230a..289bfbabd949b 100644 --- a/src/test/ui/output-width/flag-human.rs +++ b/src/test/ui/diagnostic-width/flag-human.rs @@ -1,4 +1,4 @@ -// compile-flags: --output-width=20 +// compile-flags: --diagnostic-width=20 // This test checks that `-Z output-width` effects the human error output by restricting it to an // arbitrarily low value so that the effect is visible. diff --git a/src/test/ui/output-width/flag-human.stderr b/src/test/ui/diagnostic-width/flag-human.stderr similarity index 100% rename from src/test/ui/output-width/flag-human.stderr rename to src/test/ui/diagnostic-width/flag-human.stderr diff --git a/src/test/ui/output-width/flag-json.rs b/src/test/ui/diagnostic-width/flag-json.rs similarity index 80% rename from src/test/ui/output-width/flag-json.rs rename to src/test/ui/diagnostic-width/flag-json.rs index ec01dcb88189a..51a1fb447c7d2 100644 --- a/src/test/ui/output-width/flag-json.rs +++ b/src/test/ui/diagnostic-width/flag-json.rs @@ -1,4 +1,4 @@ -// compile-flags: --output-width=20 --error-format=json +// compile-flags: --diagnostic-width=20 --error-format=json // This test checks that `-Z output-width` effects the JSON error output by restricting it to an // arbitrarily low value so that the effect is visible. diff --git a/src/test/ui/output-width/flag-json.stderr b/src/test/ui/diagnostic-width/flag-json.stderr similarity index 93% rename from src/test/ui/output-width/flag-json.stderr rename to src/test/ui/diagnostic-width/flag-json.stderr index 097ca1d6e1780..b21391d1640ef 100644 --- a/src/test/ui/output-width/flag-json.stderr +++ b/src/test/ui/diagnostic-width/flag-json.stderr @@ -24,7 +24,7 @@ This error occurs when an expression was used in a place where the compiler expected an expression of a different type. It can occur in several cases, the most common being when calling a function and passing an argument which has a different type than the matching type in the function declaration. -"},"level":"error","spans":[{"file_name":"$DIR/flag-json.rs","byte_start":239,"byte_end":241,"line_start":7,"line_end":7,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":" let _: () = 42;","highlight_start":17,"highlight_end":19}],"label":"expected `()`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/flag-json.rs","byte_start":234,"byte_end":236,"line_start":7,"line_end":7,"column_start":12,"column_end":14,"is_primary":false,"text":[{"text":" let _: () = 42;","highlight_start":12,"highlight_end":14}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0308]: mismatched types +"},"level":"error","spans":[{"file_name":"$DIR/flag-json.rs","byte_start":243,"byte_end":245,"line_start":7,"line_end":7,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":" let _: () = 42;","highlight_start":17,"highlight_end":19}],"label":"expected `()`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/flag-json.rs","byte_start":238,"byte_end":240,"line_start":7,"line_end":7,"column_start":12,"column_end":14,"is_primary":false,"text":[{"text":" let _: () = 42;","highlight_start":12,"highlight_end":14}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0308]: mismatched types --> $DIR/flag-json.rs:7:17 | LL | ..._: () = 42; diff --git a/src/test/ui/output-width/non-1-width-unicode-multiline-label.rs b/src/test/ui/diagnostic-width/non-1-width-unicode-multiline-label.rs similarity index 100% rename from src/test/ui/output-width/non-1-width-unicode-multiline-label.rs rename to src/test/ui/diagnostic-width/non-1-width-unicode-multiline-label.rs diff --git a/src/test/ui/output-width/non-1-width-unicode-multiline-label.stderr b/src/test/ui/diagnostic-width/non-1-width-unicode-multiline-label.stderr similarity index 100% rename from src/test/ui/output-width/non-1-width-unicode-multiline-label.stderr rename to src/test/ui/diagnostic-width/non-1-width-unicode-multiline-label.stderr diff --git a/src/test/ui/output-width/non-whitespace-trimming-2.rs b/src/test/ui/diagnostic-width/non-whitespace-trimming-2.rs similarity index 100% rename from src/test/ui/output-width/non-whitespace-trimming-2.rs rename to src/test/ui/diagnostic-width/non-whitespace-trimming-2.rs diff --git a/src/test/ui/output-width/non-whitespace-trimming-2.stderr b/src/test/ui/diagnostic-width/non-whitespace-trimming-2.stderr similarity index 100% rename from src/test/ui/output-width/non-whitespace-trimming-2.stderr rename to src/test/ui/diagnostic-width/non-whitespace-trimming-2.stderr diff --git a/src/test/ui/output-width/non-whitespace-trimming-unicode.rs b/src/test/ui/diagnostic-width/non-whitespace-trimming-unicode.rs similarity index 100% rename from src/test/ui/output-width/non-whitespace-trimming-unicode.rs rename to src/test/ui/diagnostic-width/non-whitespace-trimming-unicode.rs diff --git a/src/test/ui/output-width/non-whitespace-trimming-unicode.stderr b/src/test/ui/diagnostic-width/non-whitespace-trimming-unicode.stderr similarity index 100% rename from src/test/ui/output-width/non-whitespace-trimming-unicode.stderr rename to src/test/ui/diagnostic-width/non-whitespace-trimming-unicode.stderr diff --git a/src/test/ui/output-width/non-whitespace-trimming.rs b/src/test/ui/diagnostic-width/non-whitespace-trimming.rs similarity index 100% rename from src/test/ui/output-width/non-whitespace-trimming.rs rename to src/test/ui/diagnostic-width/non-whitespace-trimming.rs diff --git a/src/test/ui/output-width/non-whitespace-trimming.stderr b/src/test/ui/diagnostic-width/non-whitespace-trimming.stderr similarity index 100% rename from src/test/ui/output-width/non-whitespace-trimming.stderr rename to src/test/ui/diagnostic-width/non-whitespace-trimming.stderr diff --git a/src/test/ui/output-width/tabs-trimming.rs b/src/test/ui/diagnostic-width/tabs-trimming.rs similarity index 100% rename from src/test/ui/output-width/tabs-trimming.rs rename to src/test/ui/diagnostic-width/tabs-trimming.rs diff --git a/src/test/ui/output-width/tabs-trimming.stderr b/src/test/ui/diagnostic-width/tabs-trimming.stderr similarity index 100% rename from src/test/ui/output-width/tabs-trimming.stderr rename to src/test/ui/diagnostic-width/tabs-trimming.stderr diff --git a/src/test/ui/output-width/whitespace-trimming-2.rs b/src/test/ui/diagnostic-width/whitespace-trimming-2.rs similarity index 100% rename from src/test/ui/output-width/whitespace-trimming-2.rs rename to src/test/ui/diagnostic-width/whitespace-trimming-2.rs diff --git a/src/test/ui/output-width/whitespace-trimming-2.stderr b/src/test/ui/diagnostic-width/whitespace-trimming-2.stderr similarity index 100% rename from src/test/ui/output-width/whitespace-trimming-2.stderr rename to src/test/ui/diagnostic-width/whitespace-trimming-2.stderr diff --git a/src/test/ui/output-width/whitespace-trimming.rs b/src/test/ui/diagnostic-width/whitespace-trimming.rs similarity index 100% rename from src/test/ui/output-width/whitespace-trimming.rs rename to src/test/ui/diagnostic-width/whitespace-trimming.rs diff --git a/src/test/ui/output-width/whitespace-trimming.stderr b/src/test/ui/diagnostic-width/whitespace-trimming.stderr similarity index 100% rename from src/test/ui/output-width/whitespace-trimming.stderr rename to src/test/ui/diagnostic-width/whitespace-trimming.stderr