|
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