Skip to content

Commit

Permalink
Deprecate rustc plugin support in cargo
Browse files Browse the repository at this point in the history
It has been removed entirely from rustc itself already
  • Loading branch information
bjorn3 committed Jan 4, 2024
1 parent f9946d1 commit f26e2fe
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/cargo/util/toml/targets.rs
Expand Up @@ -203,6 +203,17 @@ fn clean_lib(
}
};

if lib.plugin == Some(true) {
warnings.push(format!(
"support for rustc plugins has been removed from rustc. \
library `{}` should not specify `plugin = true`",
name_or_panic(lib)
));
warnings.push(format!(
"support for `plugin = true` will be removed from cargo in the future"
));
}

// Per the Macros 1.1 RFC:
//
// > Initially if a crate is compiled with the `proc-macro` crate type
Expand Down
2 changes: 2 additions & 0 deletions tests/testsuite/cross_compile.rs
Expand Up @@ -896,6 +896,8 @@ fn plugin_build_script_right_arch() {
.arg(cross_compile::alternate())
.with_stderr(
"\
[WARNING] support for rustc plugins has been removed from rustc. library `foo` should not specify `plugin = true`
[WARNING] support for `plugin = true` will be removed from cargo in the future
[COMPILING] foo v0.0.1 ([..])
[RUNNING] `rustc [..] build.rs [..]`
[RUNNING] `[..]/build-script-build`
Expand Down
5 changes: 5 additions & 0 deletions tests/testsuite/proc_macro.rs
Expand Up @@ -378,6 +378,11 @@ fn proc_macro_crate_type_warning_plugin() {
.build();

foo.cargo("check")
.with_stderr_contains(
"[WARNING] support for rustc plugins has been removed from rustc. \
library `foo` should not specify `plugin = true`")
.with_stderr_contains(
"[WARNING] support for `plugin = true` will be removed from cargo in the future")
.with_stderr_contains(
"[WARNING] proc-macro library `foo` should not specify `plugin = true`")
.with_stderr_contains(
Expand Down

0 comments on commit f26e2fe

Please sign in to comment.