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