diff options
| author | QuietMisdreavus <grey@quietmisdreavus.net> | 2018-04-20 16:06:10 -0500 |
|---|---|---|
| committer | QuietMisdreavus <grey@quietmisdreavus.net> | 2018-05-14 12:38:27 -0500 |
| commit | 9415adcd8aacfecb9df0f3b2b6b8acdc43503dda (patch) | |
| tree | ea48a7974a0228efb639ba48dc88b99ecdd41117 | |
| parent | c3fd12ff4e88321904e4e28949945c23f399da57 (diff) | |
| download | rust-9415adcd8aacfecb9df0f3b2b6b8acdc43503dda.tar.gz rust-9415adcd8aacfecb9df0f3b2b6b8acdc43503dda.zip | |
deprecate #![doc(no_default_passes, passes, plugins)]
| -rw-r--r-- | src/librustdoc/lib.rs | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index b93aaaf031e..ad810a91728 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -646,6 +646,20 @@ where R: 'static + Send, krate.version = crate_version; + let diag = core::new_handler(error_format, None); + + fn report_deprecated_attr(name: &str, diag: &errors::Handler) { + let mut msg = diag.struct_warn(&format!("WARNING: the `#![doc({})]` attribute is \ + considered deprecated", name)); + msg.warn("please see https://github.com/rust-lang/rust/issues/44136"); + + if name == "no_default_passes" { + msg.help("you may want to use `#![doc(document_private_items)]`"); + } + + msg.emit(); + } + // Process all of the crate attributes, extracting plugin metadata along // with the passes which we are supposed to run. for attr in krate.module.as_ref().unwrap().attrs.lists("doc") { @@ -653,18 +667,34 @@ where R: 'static + Send, let name = name.as_ref().map(|s| &s[..]); if attr.is_word() { if name == Some("no_default_passes") { + report_deprecated_attr("no_default_passes", &diag); default_passes = false; } } else if let Some(value) = attr.value_str() { let sink = match name { - Some("passes") => &mut passes, - Some("plugins") => &mut plugins, + Some("passes") => { + report_deprecated_attr("passes = \"...\"", &diag); + &mut passes + }, + Some("plugins") => { + report_deprecated_attr("plugins = \"...\"", &diag); + &mut plugins + }, _ => continue, }; for p in value.as_str().split_whitespace() { sink.push(p.to_string()); } } + + if attr.is_word() && name == Some("document_private_items") { + default_passes = false; + + passes = vec![ + String::from("collapse-docs"), + String::from("unindent-comments"), + ]; + } } if default_passes { |
