|
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