Skip to content

Commit 0d5087d

Browse files
committed
Display valid values in --crate-type
1 parent 32c8a9f commit 0d5087d

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

compiler/rustc_session/src/config.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -2678,7 +2678,14 @@ pub fn parse_crate_types_from_list(list_list: Vec<String>) -> Result<Vec<CrateTy
26782678
"cdylib" => CrateType::Cdylib,
26792679
"bin" => CrateType::Executable,
26802680
"proc-macro" => CrateType::ProcMacro,
2681-
_ => return Err(format!("unknown crate type: `{part}`")),
2681+
_ => {
2682+
return Err(format!(
2683+
"unknown crate type: `{part}`, expected one of: {display}",
2684+
display =
2685+
["lib", "rlib", "staticlib", "dylib", "cdylib", "bin", "proc-macro"]
2686+
.join(", ")
2687+
));
2688+
}
26822689
};
26832690
if !crate_types.contains(&new_part) {
26842691
crate_types.push(new_part)

tests/ui/crate_type_flag.rs

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
//@ compile-flags: --crate-type dynlib
2+
//@ error-pattern: unknown crate type: `dynlib`, expected one of: lib, rlib, staticlib, dylib, cdylib, bin, proc-macro
3+
4+
fn main() {}

tests/ui/crate_type_flag.stderr

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
error: unknown crate type: `dynlib`, expected one of: lib, rlib, staticlib, dylib, cdylib, bin, proc-macro
2+

0 commit comments

Comments
 (0)