Auto merge of #28007 - Ms2ger:FnKind, r=nrc
There is no longer a need for that pattern, since enums are now qualified.
This commit is contained in:
@@ -17,7 +17,7 @@ use owned_slice::OwnedSlice;
|
||||
use parse::token;
|
||||
use print::pprust;
|
||||
use ptr::P;
|
||||
use visit::Visitor;
|
||||
use visit::{FnKind, Visitor};
|
||||
use visit;
|
||||
|
||||
use std::cmp;
|
||||
@@ -423,8 +423,8 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> {
|
||||
node_id: NodeId) {
|
||||
if !self.pass_through_items {
|
||||
match function_kind {
|
||||
visit::FkMethod(..) if self.visited_outermost => return,
|
||||
visit::FkMethod(..) => self.visited_outermost = true,
|
||||
FnKind::Method(..) if self.visited_outermost => return,
|
||||
FnKind::Method(..) => self.visited_outermost = true,
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
@@ -432,13 +432,13 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> {
|
||||
self.operation.visit_id(node_id);
|
||||
|
||||
match function_kind {
|
||||
visit::FkItemFn(_, generics, _, _, _, _) => {
|
||||
FnKind::ItemFn(_, generics, _, _, _, _) => {
|
||||
self.visit_generics_helper(generics)
|
||||
}
|
||||
visit::FkMethod(_, sig, _) => {
|
||||
FnKind::Method(_, sig, _) => {
|
||||
self.visit_generics_helper(&sig.generics)
|
||||
}
|
||||
visit::FkClosure => {}
|
||||
FnKind::Closure => {}
|
||||
}
|
||||
|
||||
for argument in &function_declaration.inputs {
|
||||
@@ -452,7 +452,7 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> {
|
||||
span);
|
||||
|
||||
if !self.pass_through_items {
|
||||
if let visit::FkMethod(..) = function_kind {
|
||||
if let FnKind::Method(..) = function_kind {
|
||||
self.visited_outermost = false;
|
||||
}
|
||||
}
|
||||
@@ -518,7 +518,7 @@ impl IdVisitingOperation for IdRangeComputingVisitor {
|
||||
}
|
||||
|
||||
/// Computes the id range for a single fn body, ignoring nested items.
|
||||
pub fn compute_id_range_for_fn_body(fk: visit::FnKind,
|
||||
pub fn compute_id_range_for_fn_body(fk: FnKind,
|
||||
decl: &FnDecl,
|
||||
body: &Block,
|
||||
sp: Span,
|
||||
|
||||
@@ -34,7 +34,7 @@ use attr::AttrMetaMethods;
|
||||
use codemap::{CodeMap, Span};
|
||||
use diagnostic::SpanHandler;
|
||||
use visit;
|
||||
use visit::Visitor;
|
||||
use visit::{FnKind, Visitor};
|
||||
use parse::token::{self, InternedString};
|
||||
|
||||
use std::ascii::AsciiExt;
|
||||
@@ -833,14 +833,14 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> {
|
||||
}
|
||||
|
||||
fn visit_fn(&mut self,
|
||||
fn_kind: visit::FnKind<'v>,
|
||||
fn_kind: FnKind<'v>,
|
||||
fn_decl: &'v ast::FnDecl,
|
||||
block: &'v ast::Block,
|
||||
span: Span,
|
||||
_node_id: NodeId) {
|
||||
// check for const fn declarations
|
||||
match fn_kind {
|
||||
visit::FkItemFn(_, _, _, ast::Constness::Const, _, _) => {
|
||||
FnKind::ItemFn(_, _, _, ast::Constness::Const, _, _) => {
|
||||
self.gate_feature("const_fn", span, "const fn is unstable");
|
||||
}
|
||||
_ => {
|
||||
@@ -852,13 +852,13 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> {
|
||||
}
|
||||
|
||||
match fn_kind {
|
||||
visit::FkItemFn(_, _, _, _, abi, _) if abi == Abi::RustIntrinsic => {
|
||||
FnKind::ItemFn(_, _, _, _, abi, _) if abi == Abi::RustIntrinsic => {
|
||||
self.gate_feature("intrinsics",
|
||||
span,
|
||||
"intrinsics are subject to change")
|
||||
}
|
||||
visit::FkItemFn(_, _, _, _, abi, _) |
|
||||
visit::FkMethod(_, &ast::MethodSig { abi, .. }, _) if abi == Abi::RustCall => {
|
||||
FnKind::ItemFn(_, _, _, _, abi, _) |
|
||||
FnKind::Method(_, &ast::MethodSig { abi, .. }, _) if abi == Abi::RustCall => {
|
||||
self.gate_feature("unboxed_closures",
|
||||
span,
|
||||
"rust-call ABI is subject to change")
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
//! instance, a walker looking for item names in a module will miss all of
|
||||
//! those that are created by the expansion of a macro.
|
||||
|
||||
pub use self::FnKind::*;
|
||||
|
||||
use abi::Abi;
|
||||
use ast::*;
|
||||
use ast;
|
||||
@@ -35,13 +33,13 @@ use owned_slice::OwnedSlice;
|
||||
#[derive(Copy, Clone, PartialEq, Eq)]
|
||||
pub enum FnKind<'a> {
|
||||
/// fn foo() or extern "Abi" fn foo()
|
||||
FkItemFn(Ident, &'a Generics, Unsafety, Constness, Abi, Visibility),
|
||||
ItemFn(Ident, &'a Generics, Unsafety, Constness, Abi, Visibility),
|
||||
|
||||
/// fn foo(&self)
|
||||
FkMethod(Ident, &'a MethodSig, Option<Visibility>),
|
||||
Method(Ident, &'a MethodSig, Option<Visibility>),
|
||||
|
||||
/// |x, y| {}
|
||||
FkClosure,
|
||||
Closure,
|
||||
}
|
||||
|
||||
/// Each method of the Visitor trait is a hook to be potentially
|
||||
@@ -247,8 +245,8 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item) {
|
||||
visitor.visit_expr(&**expr);
|
||||
}
|
||||
ItemFn(ref declaration, unsafety, constness, abi, ref generics, ref body) => {
|
||||
visitor.visit_fn(FkItemFn(item.ident, generics, unsafety,
|
||||
constness, abi, item.vis),
|
||||
visitor.visit_fn(FnKind::ItemFn(item.ident, generics, unsafety,
|
||||
constness, abi, item.vis),
|
||||
&**declaration,
|
||||
&**body,
|
||||
item.span,
|
||||
@@ -608,14 +606,14 @@ pub fn walk_fn<'v, V: Visitor<'v>>(visitor: &mut V,
|
||||
walk_fn_decl(visitor, function_declaration);
|
||||
|
||||
match function_kind {
|
||||
FkItemFn(_, generics, _, _, _, _) => {
|
||||
FnKind::ItemFn(_, generics, _, _, _, _) => {
|
||||
visitor.visit_generics(generics);
|
||||
}
|
||||
FkMethod(_, sig, _) => {
|
||||
FnKind::Method(_, sig, _) => {
|
||||
visitor.visit_generics(&sig.generics);
|
||||
visitor.visit_explicit_self(&sig.explicit_self);
|
||||
}
|
||||
FkClosure(..) => {}
|
||||
FnKind::Closure(..) => {}
|
||||
}
|
||||
|
||||
visitor.visit_block(function_body)
|
||||
@@ -639,7 +637,7 @@ pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v Trai
|
||||
walk_fn_decl(visitor, &sig.decl);
|
||||
}
|
||||
MethodTraitItem(ref sig, Some(ref body)) => {
|
||||
visitor.visit_fn(FkMethod(trait_item.ident, sig, None), &sig.decl,
|
||||
visitor.visit_fn(FnKind::Method(trait_item.ident, sig, None), &sig.decl,
|
||||
body, trait_item.span, trait_item.id);
|
||||
}
|
||||
TypeTraitItem(ref bounds, ref default) => {
|
||||
@@ -660,7 +658,7 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
|
||||
visitor.visit_expr(expr);
|
||||
}
|
||||
MethodImplItem(ref sig, ref body) => {
|
||||
visitor.visit_fn(FkMethod(impl_item.ident, sig, Some(impl_item.vis)), &sig.decl,
|
||||
visitor.visit_fn(FnKind::Method(impl_item.ident, sig, Some(impl_item.vis)), &sig.decl,
|
||||
body, impl_item.span, impl_item.id);
|
||||
}
|
||||
TypeImplItem(ref ty) => {
|
||||
@@ -816,7 +814,7 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) {
|
||||
}
|
||||
}
|
||||
ExprClosure(_, ref function_declaration, ref body) => {
|
||||
visitor.visit_fn(FkClosure,
|
||||
visitor.visit_fn(FnKind::Closure,
|
||||
&**function_declaration,
|
||||
&**body,
|
||||
expression.span,
|
||||
|
||||
Reference in New Issue
Block a user