diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs index 6d74e9a9f2b9..802cd1a16550 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 d4d1491c1694..1e87e70922b7 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 2650ad528790..bad9fb576bf3 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 80e811bc1a74..b544965f6f23 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 b5a72ed20c16..e22b7a5539f7 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 0c913f8a07f9..0285f15dd76f 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 7ed7243cb99c..d85e9d974dbc 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 d42bb02e0323..b0be3502baed 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 6ca2143efbde..64b31adc63e4 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 72544d7ee53a..9fb680474475 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 16ab606eb990..dc790530300c 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 000000000000..44e9ba044230 --- /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 000000000000..ec01dcb88189 --- /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 b21391d1640e..097ca1d6e178 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 4ae960ef967b..000000000000 --- 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 d4e51e80347d..000000000000 --- 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 -}