|
20 | 20 | // tidy-alphabetical-end |
21 | 21 |
|
22 | 22 | use std::cmp::max; |
23 | | -use std::collections::BTreeMap; |
| 23 | +use std::collections::{BTreeMap, BTreeSet}; |
24 | 24 | use std::ffi::OsString; |
25 | 25 | use std::fmt::Write as _; |
26 | 26 | use std::fs::{self, File}; |
@@ -57,7 +57,7 @@ use rustc_session::config::{ |
57 | 57 | }; |
58 | 58 | use rustc_session::getopts::{self, Matches}; |
59 | 59 | use rustc_session::lint::{Lint, LintId}; |
60 | | -use rustc_session::output::collect_crate_types; |
| 60 | +use rustc_session::output::{CRATE_TYPES, collect_crate_types, invalid_output_for_target}; |
61 | 61 | use rustc_session::{EarlyDiagCtxt, Session, config, filesearch}; |
62 | 62 | use rustc_span::FileName; |
63 | 63 | use rustc_target::json::ToJson; |
@@ -781,6 +781,16 @@ fn print_crate_info( |
781 | 781 | sess.dcx().fatal("only Apple targets currently support deployment version info") |
782 | 782 | } |
783 | 783 | } |
| 784 | + SupportedCrateTypes => { |
| 785 | + let supported_crate_types = CRATE_TYPES |
| 786 | + .iter() |
| 787 | + .filter(|(_, crate_type)| !invalid_output_for_target(&sess, *crate_type)) |
| 788 | + .map(|(crate_type_sym, _)| *crate_type_sym) |
| 789 | + .collect::<BTreeSet<_>>(); |
| 790 | + for supported_crate_type in supported_crate_types { |
| 791 | + println_info!("{}", supported_crate_type.as_str()); |
| 792 | + } |
| 793 | + } |
784 | 794 | } |
785 | 795 |
|
786 | 796 | req.out.overwrite(&crate_info, sess); |
|
0 commit comments