diff options
| author | bors <bors@rust-lang.org> | 2023-06-09 09:45:40 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-06-09 09:45:40 +0000 |
| commit | 343ad6f0596fa3222f3168b74b3e8571066e77bb (patch) | |
| tree | f5cc12ae54e7774b27f5f029495b31aea8dcee94 /compiler/rustc_interface/src/interface.rs | |
| parent | dcc9028c0ce30c3b37f3ca9faf637a9f3ccd5bcb (diff) | |
| parent | ade6c36e5319963e34c5c35a4c0c948951c48f19 (diff) | |
| download | rust-343ad6f0596fa3222f3168b74b3e8571066e77bb.tar.gz rust-343ad6f0596fa3222f3168b74b3e8571066e77bb.zip | |
Auto merge of #111626 - pjhades:output, r=b-naber
Write to stdout if `-` is given as output file With this PR, if `-o -` or `--emit KIND=-` is provided, output will be written to stdout instead. Binary output (those of type `obj`, `llvm-bc`, `link` and `metadata`) being written this way will result in an error unless stdout is not a tty. Multiple output types going to stdout will trigger an error too, as they will all be mixded together. This implements https://github.com/rust-lang/compiler-team/issues/431 The idea behind the changes is to introduce an `OutFileName` enum that represents the output - be it a real path or stdout - and to use this enum along the code paths that handle different output types.
Diffstat (limited to 'compiler/rustc_interface/src/interface.rs')
| -rw-r--r-- | compiler/rustc_interface/src/interface.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_interface/src/interface.rs b/compiler/rustc_interface/src/interface.rs index 39d56897999..2edc72ba72e 100644 --- a/compiler/rustc_interface/src/interface.rs +++ b/compiler/rustc_interface/src/interface.rs @@ -14,7 +14,7 @@ use rustc_middle::{bug, ty}; use rustc_parse::maybe_new_parser_from_source_str; use rustc_query_impl::QueryCtxt; use rustc_query_system::query::print_query_stack; -use rustc_session::config::{self, ErrorOutputType, Input, OutputFilenames}; +use rustc_session::config::{self, ErrorOutputType, Input, OutFileName, OutputFilenames}; use rustc_session::config::{CheckCfg, ExpectedValues}; use rustc_session::lint; use rustc_session::parse::{CrateConfig, ParseSess}; @@ -252,7 +252,7 @@ pub struct Config { pub input: Input, pub output_dir: Option<PathBuf>, - pub output_file: Option<PathBuf>, + pub output_file: Option<OutFileName>, pub file_loader: Option<Box<dyn FileLoader + Send + Sync>>, pub locale_resources: &'static [&'static str], |
