use lint::{EarlyContext, LateContext, LintArray, LintContext};
use lint::{EarlyLintPass, LateLintPass, LintPass};
-use rustc::hir;
-use rustc::hir::def::{DefKind, Res};
-use rustc::hir::def_id::DefId;
use rustc::lint;
use rustc::lint::builtin::UNUSED_ATTRIBUTES;
use rustc::ty::adjustment;
use rustc::ty::{self, Ty};
use rustc_data_structures::fx::FxHashMap;
use rustc_feature::{AttributeType, BuiltinAttribute, BUILTIN_ATTRIBUTE_MAP};
+use rustc_hir as hir;
+use rustc_hir::def::{DefKind, Res};
+use rustc_hir::def_id::DefId;
+use rustc_span::symbol::Symbol;
+use rustc_span::symbol::{kw, sym};
+use rustc_span::{BytePos, Span};
use syntax::ast;
use syntax::attr;
use syntax::errors::{pluralize, Applicability};
use syntax::print::pprust;
-use syntax::symbol::Symbol;
-use syntax::symbol::{kw, sym};
use syntax::util::parser;
-use syntax_pos::{BytePos, Span};
use log::debug;
fn check_attribute(&mut self, cx: &LateContext<'_, '_>, attr: &ast::Attribute) {
debug!("checking attribute: {:?}", attr);
+ if attr.is_doc_comment() {
+ return;
+ }
+
let attr_info = attr.ident().and_then(|ident| self.builtin_attributes.get(&ident.name));
if let Some(&&(name, ty, ..)) = attr_info {
}
If(ref cond, ref block, ..) => {
- let left = e.span.lo() + syntax_pos::BytePos(2);
+ let left = e.span.lo() + rustc_span::BytePos(2);
let right = block.span.lo();
(cond, "`if` condition", true, Some(left), Some(right))
}
While(ref cond, ref block, ..) => {
- let left = e.span.lo() + syntax_pos::BytePos(5);
+ let left = e.span.lo() + rustc_span::BytePos(5);
let right = block.span.lo();
(cond, "`while` condition", true, Some(left), Some(right))
}
}
Match(ref head, _) => {
- let left = e.span.lo() + syntax_pos::BytePos(5);
+ let left = e.span.lo() + rustc_span::BytePos(5);
(head, "`match` head expression", true, Some(left), None)
}
Ret(Some(ref value)) => {
- let left = e.span.lo() + syntax_pos::BytePos(3);
+ let left = e.span.lo() + rustc_span::BytePos(3);
(value, "`return` value", false, Some(left), None)
}