mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-29 02:03:53 +00:00
Rustup to rustc 1.40.0-nightly (7a76fe76f
2019-11-07)
This commit is contained in:
parent
43a3796379
commit
305ba73fc1
@ -15,7 +15,7 @@ use rustc::ty;
|
||||
use rustc::{declare_lint_pass, declare_tool_lint};
|
||||
use rustc_errors::Applicability;
|
||||
use semver::Version;
|
||||
use syntax::ast::{AttrStyle, Attribute, Lit, LitKind, MetaItemKind, NestedMetaItem};
|
||||
use syntax::ast::{AttrKind, AttrStyle, Attribute, Lit, LitKind, MetaItemKind, NestedMetaItem};
|
||||
use syntax::source_map::Span;
|
||||
use syntax_pos::symbol::Symbol;
|
||||
|
||||
@ -417,11 +417,14 @@ fn check_attrs(cx: &LateContext<'_, '_>, span: Span, name: Name, attrs: &[Attrib
|
||||
}
|
||||
|
||||
for attr in attrs {
|
||||
if attr.is_sugared_doc {
|
||||
return;
|
||||
}
|
||||
let attr_item = if let AttrKind::Normal(ref attr) = attr.kind {
|
||||
attr
|
||||
} else {
|
||||
continue;
|
||||
};
|
||||
|
||||
if attr.style == AttrStyle::Outer {
|
||||
if attr.tokens.is_empty() || !is_present_in_source(cx, attr.span) {
|
||||
if attr_item.tokens.is_empty() || !is_present_in_source(cx, attr.span) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@ use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass};
|
||||
use rustc::{declare_tool_lint, impl_lint_pass};
|
||||
use rustc_data_structures::fx::FxHashSet;
|
||||
use std::ops::Range;
|
||||
use syntax::ast::Attribute;
|
||||
use syntax::ast::{AttrKind, Attribute};
|
||||
use syntax::source_map::{BytePos, Span};
|
||||
use syntax_pos::Pos;
|
||||
use url::Url;
|
||||
@ -247,13 +247,11 @@ pub fn check_attrs<'a>(cx: &LateContext<'_, '_>, valid_idents: &FxHashSet<String
|
||||
let mut spans = vec![];
|
||||
|
||||
for attr in attrs {
|
||||
if attr.is_sugared_doc {
|
||||
if let Some(ref current) = attr.value_str() {
|
||||
let current = current.to_string();
|
||||
let (current, current_spans) = strip_doc_comment_decoration(¤t, attr.span);
|
||||
spans.extend_from_slice(¤t_spans);
|
||||
doc.push_str(¤t);
|
||||
}
|
||||
if let AttrKind::DocComment(ref comment) = attr.kind {
|
||||
let comment = comment.to_string();
|
||||
let (comment, current_spans) = strip_doc_comment_decoration(&comment, attr.span);
|
||||
spans.extend_from_slice(¤t_spans);
|
||||
doc.push_str(&comment);
|
||||
} else if attr.check_name(sym!(doc)) {
|
||||
// ignore mix of sugared and non-sugared doc
|
||||
return true; // don't trigger the safety check
|
||||
|
@ -1,6 +1,7 @@
|
||||
use rustc::hir::{Crate, Expr, ExprKind, QPath};
|
||||
use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass};
|
||||
use rustc::{declare_tool_lint, impl_lint_pass};
|
||||
use syntax::ast::AttrKind;
|
||||
use syntax::symbol::sym;
|
||||
|
||||
use crate::utils::{is_entrypoint_fn, snippet, span_help_and_lint};
|
||||
@ -34,7 +35,13 @@ impl_lint_pass!(MainRecursion => [MAIN_RECURSION]);
|
||||
|
||||
impl LateLintPass<'_, '_> for MainRecursion {
|
||||
fn check_crate(&mut self, _: &LateContext<'_, '_>, krate: &Crate) {
|
||||
self.has_no_std_attr = krate.attrs.iter().any(|attr| attr.path == sym::no_std);
|
||||
self.has_no_std_attr = krate.attrs.iter().any(|attr| {
|
||||
if let AttrKind::Normal(ref attr) = attr.kind {
|
||||
attr.path == sym::no_std
|
||||
} else {
|
||||
false
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
fn check_expr_post(&mut self, cx: &LateContext<'_, '_>, expr: &Expr) {
|
||||
|
@ -57,6 +57,11 @@ pub fn get_attr<'a>(
|
||||
name: &'static str,
|
||||
) -> impl Iterator<Item = &'a ast::Attribute> {
|
||||
attrs.iter().filter(move |attr| {
|
||||
let attr = if let ast::AttrKind::Normal(ref attr) = attr.kind {
|
||||
attr
|
||||
} else {
|
||||
return false;
|
||||
};
|
||||
let attr_segments = &attr.path.segments;
|
||||
if attr_segments.len() == 2 && attr_segments[0].ident.to_string() == "clippy" {
|
||||
if let Some(deprecation_status) =
|
||||
|
Loading…
Reference in New Issue
Block a user