mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Rollup merge of #107291 - oli-obk:rustdoc_breaking_change, r=estebank
[breaking change] Remove a rustdoc back compat warning This warning was introduced in https://github.com/rust-lang/rust/pull/62855 for users who use `rustdoc` directly on proc macro crates (instead of using `cargo doc`) without passing `--crate-type proc-macro` (which `cargo doc` passed automatically).
This commit is contained in:
commit
a4119ba0ae
@ -11,10 +11,6 @@ interface_mixed_bin_crate =
|
||||
interface_mixed_proc_macro_crate =
|
||||
cannot mix `proc-macro` crate type with others
|
||||
|
||||
interface_proc_macro_doc_without_arg =
|
||||
Trying to document proc macro crate without passing '--crate-type proc-macro to rustdoc
|
||||
.warn = The generated documentation may be incorrect
|
||||
|
||||
interface_error_writing_dependencies =
|
||||
error writing dependencies to `{$path}`: {$error}
|
||||
|
||||
|
@ -31,10 +31,6 @@ pub struct MixedBinCrate;
|
||||
#[diag(interface_mixed_proc_macro_crate)]
|
||||
pub struct MixedProcMacroCrate;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag(interface_proc_macro_doc_without_arg)]
|
||||
pub struct ProcMacroDocWithoutArg;
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag(interface_error_writing_dependencies)]
|
||||
pub struct ErrorWritingDependencies<'a> {
|
||||
|
@ -287,28 +287,18 @@ fn configure_and_expand(mut krate: ast::Crate, resolver: &mut Resolver<'_, '_>)
|
||||
sess.emit_warning(errors::ProcMacroCratePanicAbort);
|
||||
}
|
||||
|
||||
// For backwards compatibility, we don't try to run proc macro injection
|
||||
// if rustdoc is run on a proc macro crate without '--crate-type proc-macro' being
|
||||
// specified. This should only affect users who manually invoke 'rustdoc', as
|
||||
// 'cargo doc' will automatically pass the proper '--crate-type' flags.
|
||||
// However, we do emit a warning, to let such users know that they should
|
||||
// start passing '--crate-type proc-macro'
|
||||
if has_proc_macro_decls && sess.opts.actually_rustdoc && !is_proc_macro_crate {
|
||||
sess.emit_warning(errors::ProcMacroDocWithoutArg);
|
||||
} else {
|
||||
krate = sess.time("maybe_create_a_macro_crate", || {
|
||||
let is_test_crate = sess.opts.test;
|
||||
rustc_builtin_macros::proc_macro_harness::inject(
|
||||
sess,
|
||||
resolver,
|
||||
krate,
|
||||
is_proc_macro_crate,
|
||||
has_proc_macro_decls,
|
||||
is_test_crate,
|
||||
sess.diagnostic(),
|
||||
)
|
||||
});
|
||||
}
|
||||
krate = sess.time("maybe_create_a_macro_crate", || {
|
||||
let is_test_crate = sess.opts.test;
|
||||
rustc_builtin_macros::proc_macro_harness::inject(
|
||||
sess,
|
||||
resolver,
|
||||
krate,
|
||||
is_proc_macro_crate,
|
||||
has_proc_macro_decls,
|
||||
is_test_crate,
|
||||
sess.diagnostic(),
|
||||
)
|
||||
});
|
||||
|
||||
// Done with macro expansion!
|
||||
|
||||
|
12
tests/rustdoc-ui/proc_macro_bug.rs
Normal file
12
tests/rustdoc-ui/proc_macro_bug.rs
Normal file
@ -0,0 +1,12 @@
|
||||
// regression test for failing to pass `--crate-type proc-macro` to rustdoc
|
||||
// when documenting a proc macro crate https://github.com/rust-lang/rust/pull/107291
|
||||
|
||||
extern crate proc_macro;
|
||||
|
||||
use proc_macro::TokenStream;
|
||||
|
||||
#[proc_macro_derive(DeriveA)]
|
||||
//~^ ERROR the `#[proc_macro_derive]` attribute is only usable with crates of the `proc-macro` crate type
|
||||
pub fn a_derive(input: TokenStream) -> TokenStream {
|
||||
input
|
||||
}
|
8
tests/rustdoc-ui/proc_macro_bug.stderr
Normal file
8
tests/rustdoc-ui/proc_macro_bug.stderr
Normal file
@ -0,0 +1,8 @@
|
||||
error: the `#[proc_macro_derive]` attribute is only usable with crates of the `proc-macro` crate type
|
||||
--> $DIR/proc_macro_bug.rs:8:1
|
||||
|
|
||||
LL | #[proc_macro_derive(DeriveA)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
Loading…
Reference in New Issue
Block a user