|
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}; |
@@ -61,7 +61,7 @@ use rustc_session::config::{ |
61 | 61 | }; |
62 | 62 | use rustc_session::getopts::{self, Matches}; |
63 | 63 | use rustc_session::lint::{Lint, LintId}; |
64 | | -use rustc_session::output::collect_crate_types; |
| 64 | +use rustc_session::output::{CRATE_TYPES, collect_crate_types, invalid_output_for_target}; |
65 | 65 | use rustc_session::{EarlyDiagCtxt, Session, config, filesearch}; |
66 | 66 | use rustc_span::FileName; |
67 | 67 | use rustc_target::json::ToJson; |
@@ -789,6 +789,16 @@ fn print_crate_info( |
789 | 789 | sess.dcx().fatal("only Apple targets currently support deployment version info") |
790 | 790 | } |
791 | 791 | } |
| 792 | + SupportedCrateTypes => { |
| 793 | + let supported_crate_types = CRATE_TYPES |
| 794 | + .iter() |
| 795 | + .filter(|(_, crate_type)| !invalid_output_for_target(&sess, *crate_type)) |
| 796 | + .map(|(crate_type_sym, _)| *crate_type_sym) |
| 797 | + .collect::<BTreeSet<_>>(); |
| 798 | + for supported_crate_type in supported_crate_types { |
| 799 | + println_info!("{}", supported_crate_type.as_str()); |
| 800 | + } |
| 801 | + } |
792 | 802 | } |
793 | 803 |
|
794 | 804 | req.out.overwrite(&crate_info, sess); |
|
0 commit comments