1
Fork 0

Remove doc(include)

This commit is contained in:
Joshua Nelson 2021-05-18 21:46:41 -04:00
parent c4c2ab57a4
commit 15fec1fb80
28 changed files with 79 additions and 449 deletions

View file

@ -705,7 +705,7 @@ impl CheckAttrVisitor<'tcx> {
let mut is_valid = true;
if let Some(list) = attr.meta().and_then(|mi| mi.meta_item_list().map(|l| l.to_vec())) {
for meta in list {
for meta in &list {
if let Some(i_meta) = meta.meta_item() {
match i_meta.name_or_empty() {
sym::alias
@ -757,7 +757,6 @@ impl CheckAttrVisitor<'tcx> {
| sym::html_no_source
| sym::html_playground_url
| sym::html_root_url
| sym::include
| sym::inline
| sym::issue_tracker_base_url
| sym::keyword
@ -792,6 +791,30 @@ impl CheckAttrVisitor<'tcx> {
);
diag.note("`doc(spotlight)` is now a no-op");
}
if i_meta.has_name(sym::include) {
if let Some(value) = i_meta.value_str() {
// if there are multiple attributes, the suggestion would suggest deleting all of them, which is incorrect
let applicability = if list.len() == 1 {
Applicability::MachineApplicable
} else {
Applicability::MaybeIncorrect
};
let inner = if attr.style == AttrStyle::Inner {
"!"
} else {
""
};
diag.span_suggestion(
attr.meta().unwrap().span,
"use `doc = include_str!` instead",
format!(
"#{}[doc = include_str!(\"{}\")]",
inner, value
),
applicability,
);
}
}
diag.emit();
},
);