Skip to content

Commit d7ff4f5

Browse files
committed
rollup merge of #24391: nrc/visit-vis
2 parents d10be64 + 01678ac commit d7ff4f5

File tree

9 files changed

+43
-36
lines changed

9 files changed

+43
-36
lines changed

src/librustc/middle/dead.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ impl<'a, 'tcx, 'v> Visitor<'v> for DeadVisitor<'a, 'tcx> {
562562
span: codemap::Span, id: ast::NodeId) {
563563
// Have to warn method here because methods are not ast::Item
564564
match fk {
565-
visit::FkMethod(name, _) => {
565+
visit::FkMethod(name, _, _) => {
566566
if !self.symbol_is_live(id, None) {
567567
self.warn_dead_code(id, span, name.name, "method");
568568
}

src/librustc/middle/effect.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ impl<'a, 'tcx, 'v> Visitor<'v> for EffectCheckVisitor<'a, 'tcx> {
8787
block: &'v ast::Block, span: Span, _: ast::NodeId) {
8888

8989
let (is_item_fn, is_unsafe_fn) = match fn_kind {
90-
visit::FkItemFn(_, _, fn_style, _) =>
90+
visit::FkItemFn(_, _, fn_style, _, _) =>
9191
(true, fn_style == ast::Unsafety::Unsafe),
92-
visit::FkMethod(_, sig) =>
92+
visit::FkMethod(_, sig, _) =>
9393
(true, sig.unsafety == ast::Unsafety::Unsafe),
9494
_ => (false, false),
9595
};

src/librustc/middle/resolve_lifetime.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,12 @@ impl<'a, 'v> Visitor<'v> for LifetimeContext<'a> {
142142
fn visit_fn(&mut self, fk: visit::FnKind<'v>, fd: &'v ast::FnDecl,
143143
b: &'v ast::Block, s: Span, _: ast::NodeId) {
144144
match fk {
145-
visit::FkItemFn(_, generics, _, _) => {
145+
visit::FkItemFn(_, generics, _, _, _) => {
146146
self.visit_early_late(subst::FnSpace, generics, |this| {
147147
visit::walk_fn(this, fk, fd, b, s)
148148
})
149149
}
150-
visit::FkMethod(_, sig) => {
150+
visit::FkMethod(_, sig, _) => {
151151
self.visit_early_late(subst::FnSpace, &sig.generics, |this| {
152152
visit::walk_fn(this, fk, fd, b, s)
153153
})

src/librustc_lint/builtin.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ impl LintPass for NonSnakeCase {
957957
fk: visit::FnKind, _: &ast::FnDecl,
958958
_: &ast::Block, span: Span, id: ast::NodeId) {
959959
match fk {
960-
visit::FkMethod(ident, _) => match method_context(cx, id, span) {
960+
visit::FkMethod(ident, _, _) => match method_context(cx, id, span) {
961961
MethodContext::PlainImpl => {
962962
self.check_snake_case(cx, "method", ident, span)
963963
},
@@ -966,7 +966,7 @@ impl LintPass for NonSnakeCase {
966966
},
967967
_ => (),
968968
},
969-
visit::FkItemFn(ident, _, _, _) => {
969+
visit::FkItemFn(ident, _, _, _, _) => {
970970
self.check_snake_case(cx, "function", ident, span)
971971
},
972972
_ => (),
@@ -1290,10 +1290,10 @@ impl LintPass for UnsafeCode {
12901290
fn check_fn(&mut self, cx: &Context, fk: visit::FnKind, _: &ast::FnDecl,
12911291
_: &ast::Block, span: Span, _: ast::NodeId) {
12921292
match fk {
1293-
visit::FkItemFn(_, _, ast::Unsafety::Unsafe, _) =>
1293+
visit::FkItemFn(_, _, ast::Unsafety::Unsafe, _, _) =>
12941294
cx.span_lint(UNSAFE_CODE, span, "declaration of an `unsafe` function"),
12951295

1296-
visit::FkMethod(_, sig) => {
1296+
visit::FkMethod(_, sig, _) => {
12971297
if sig.unsafety == ast::Unsafety::Unsafe {
12981298
cx.span_lint(UNSAFE_CODE, span, "implementation of an `unsafe` method")
12991299
}
@@ -1818,8 +1818,8 @@ impl LintPass for UnconditionalRecursion {
18181818
ast::NodeId, ast::NodeId, ast::Ident, ast::NodeId) -> bool;
18191819

18201820
let (name, checker) = match fn_kind {
1821-
visit::FkItemFn(name, _, _, _) => (name, id_refers_to_this_fn as F),
1822-
visit::FkMethod(name, _) => (name, id_refers_to_this_method as F),
1821+
visit::FkItemFn(name, _, _, _, _) => (name, id_refers_to_this_fn as F),
1822+
visit::FkMethod(name, _, _) => (name, id_refers_to_this_method as F),
18231823
// closures can't recur, so they don't matter.
18241824
visit::FkFnBlock => return
18251825
};

src/librustc_resolve/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,11 +242,11 @@ impl<'a, 'v, 'tcx> Visitor<'v> for Resolver<'a, 'tcx> {
242242
_: Span,
243243
node_id: NodeId) {
244244
let rib_kind = match function_kind {
245-
visit::FkItemFn(_, generics, _, _) => {
245+
visit::FkItemFn(_, generics, _, _, _) => {
246246
self.visit_generics(generics);
247247
ItemRibKind
248248
}
249-
visit::FkMethod(_, sig) => {
249+
visit::FkMethod(_, sig, _) => {
250250
self.visit_generics(&sig.generics);
251251
self.visit_explicit_self(&sig.explicit_self);
252252
MethodRibKind

src/libsyntax/ast_map/blocks.rs

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ struct ItemFnParts<'a> {
121121
decl: &'a ast::FnDecl,
122122
unsafety: ast::Unsafety,
123123
abi: abi::Abi,
124+
vis: ast::Visibility,
124125
generics: &'a ast::Generics,
125126
body: &'a Block,
126127
id: ast::NodeId,
@@ -155,65 +156,71 @@ impl<'a> FnLikeNode<'a> {
155156

156157
pub fn body(self) -> &'a Block {
157158
self.handle(|i: ItemFnParts<'a>| &*i.body,
158-
|_, _, _: &'a ast::MethodSig, body: &'a ast::Block, _| body,
159+
|_, _, _: &'a ast::MethodSig, _, body: &'a ast::Block, _| body,
159160
|c: ClosureParts<'a>| c.body)
160161
}
161162

162163
pub fn decl(self) -> &'a FnDecl {
163164
self.handle(|i: ItemFnParts<'a>| &*i.decl,
164-
|_, _, sig: &'a ast::MethodSig, _, _| &sig.decl,
165+
|_, _, sig: &'a ast::MethodSig, _, _, _| &sig.decl,
165166
|c: ClosureParts<'a>| c.decl)
166167
}
167168

168169
pub fn span(self) -> Span {
169170
self.handle(|i: ItemFnParts| i.span,
170-
|_, _, _: &'a ast::MethodSig, _, span| span,
171+
|_, _, _: &'a ast::MethodSig, _, _, span| span,
171172
|c: ClosureParts| c.span)
172173
}
173174

174175
pub fn id(self) -> NodeId {
175176
self.handle(|i: ItemFnParts| i.id,
176-
|id, _, _: &'a ast::MethodSig, _, _| id,
177+
|id, _, _: &'a ast::MethodSig, _, _, _| id,
177178
|c: ClosureParts| c.id)
178179
}
179180

180181
pub fn kind(self) -> visit::FnKind<'a> {
181182
let item = |p: ItemFnParts<'a>| -> visit::FnKind<'a> {
182-
visit::FkItemFn(p.ident, p.generics, p.unsafety, p.abi)
183+
visit::FkItemFn(p.ident, p.generics, p.unsafety, p.abi, p.vis)
183184
};
184185
let closure = |_: ClosureParts| {
185186
visit::FkFnBlock
186187
};
187-
let method = |_, ident, sig: &'a ast::MethodSig, _, _| {
188-
visit::FkMethod(ident, sig)
188+
let method = |_, ident, sig: &'a ast::MethodSig, vis, _, _| {
189+
visit::FkMethod(ident, sig, vis)
189190
};
190191
self.handle(item, method, closure)
191192
}
192193

193194
fn handle<A, I, M, C>(self, item_fn: I, method: M, closure: C) -> A where
194195
I: FnOnce(ItemFnParts<'a>) -> A,
195-
M: FnOnce(NodeId, ast::Ident, &'a ast::MethodSig, &'a ast::Block, Span) -> A,
196+
M: FnOnce(NodeId,
197+
ast::Ident,
198+
&'a ast::MethodSig,
199+
Option<ast::Visibility>,
200+
&'a ast::Block,
201+
Span)
202+
-> A,
196203
C: FnOnce(ClosureParts<'a>) -> A,
197204
{
198205
match self.node {
199206
ast_map::NodeItem(i) => match i.node {
200207
ast::ItemFn(ref decl, unsafety, abi, ref generics, ref block) =>
201208
item_fn(ItemFnParts{
202209
ident: i.ident, decl: &**decl, unsafety: unsafety, body: &**block,
203-
generics: generics, abi: abi, id: i.id, span: i.span
210+
generics: generics, abi: abi, vis: i.vis, id: i.id, span: i.span
204211
}),
205212
_ => panic!("item FnLikeNode that is not fn-like"),
206213
},
207214
ast_map::NodeTraitItem(ti) => match ti.node {
208215
ast::MethodTraitItem(ref sig, Some(ref body)) => {
209-
method(ti.id, ti.ident, sig, body, ti.span)
216+
method(ti.id, ti.ident, sig, None, body, ti.span)
210217
}
211218
_ => panic!("trait method FnLikeNode that is not fn-like"),
212219
},
213220
ast_map::NodeImplItem(ii) => {
214221
match ii.node {
215222
ast::MethodImplItem(ref sig, ref body) => {
216-
method(ii.id, ii.ident, sig, body, ii.span)
223+
method(ii.id, ii.ident, sig, Some(ii.vis), body, ii.span)
217224
}
218225
ast::TypeImplItem(_) |
219226
ast::MacImplItem(_) => {

src/libsyntax/ast_util.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,10 +440,10 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> {
440440
self.operation.visit_id(node_id);
441441

442442
match function_kind {
443-
visit::FkItemFn(_, generics, _, _) => {
443+
visit::FkItemFn(_, generics, _, _, _) => {
444444
self.visit_generics_helper(generics)
445445
}
446-
visit::FkMethod(_, sig) => {
446+
visit::FkMethod(_, sig, _) => {
447447
self.visit_generics_helper(&sig.generics)
448448
}
449449
visit::FkFnBlock => {}

src/libsyntax/feature_gate.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -644,13 +644,13 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> {
644644
span: Span,
645645
_node_id: NodeId) {
646646
match fn_kind {
647-
visit::FkItemFn(_, _, _, abi) if abi == Abi::RustIntrinsic => {
647+
visit::FkItemFn(_, _, _, abi, _) if abi == Abi::RustIntrinsic => {
648648
self.gate_feature("intrinsics",
649649
span,
650650
"intrinsics are subject to change")
651651
}
652-
visit::FkItemFn(_, _, _, abi) |
653-
visit::FkMethod(_, &ast::MethodSig { abi, .. }) if abi == Abi::RustCall => {
652+
visit::FkItemFn(_, _, _, abi, _) |
653+
visit::FkMethod(_, &ast::MethodSig { abi, .. }, _) if abi == Abi::RustCall => {
654654
self.gate_feature("unboxed_closures",
655655
span,
656656
"rust-call ABI is subject to change")

src/libsyntax/visit.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ use owned_slice::OwnedSlice;
3535
#[derive(Copy, Clone)]
3636
pub enum FnKind<'a> {
3737
/// fn foo() or extern "Abi" fn foo()
38-
FkItemFn(Ident, &'a Generics, Unsafety, Abi),
38+
FkItemFn(Ident, &'a Generics, Unsafety, Abi, Visibility),
3939

4040
/// fn foo(&self)
41-
FkMethod(Ident, &'a MethodSig),
41+
FkMethod(Ident, &'a MethodSig, Option<Visibility>),
4242

4343
/// |x, y| ...
4444
/// proc(x, y) ...
@@ -247,7 +247,7 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item) {
247247
visitor.visit_expr(&**expr);
248248
}
249249
ItemFn(ref declaration, fn_style, abi, ref generics, ref body) => {
250-
visitor.visit_fn(FkItemFn(item.ident, generics, fn_style, abi),
250+
visitor.visit_fn(FkItemFn(item.ident, generics, fn_style, abi, item.vis),
251251
&**declaration,
252252
&**body,
253253
item.span,
@@ -600,10 +600,10 @@ pub fn walk_fn<'v, V: Visitor<'v>>(visitor: &mut V,
600600
walk_fn_decl(visitor, function_declaration);
601601

602602
match function_kind {
603-
FkItemFn(_, generics, _, _) => {
603+
FkItemFn(_, generics, _, _, _) => {
604604
visitor.visit_generics(generics);
605605
}
606-
FkMethod(_, sig) => {
606+
FkMethod(_, sig, _) => {
607607
visitor.visit_generics(&sig.generics);
608608
visitor.visit_explicit_self(&sig.explicit_self);
609609
}
@@ -625,7 +625,7 @@ pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v Trai
625625
walk_fn_decl(visitor, &sig.decl);
626626
}
627627
MethodTraitItem(ref sig, Some(ref body)) => {
628-
visitor.visit_fn(FkMethod(trait_item.ident, sig), &sig.decl,
628+
visitor.visit_fn(FkMethod(trait_item.ident, sig, None), &sig.decl,
629629
body, trait_item.span, trait_item.id);
630630
}
631631
TypeTraitItem(ref bounds, ref default) => {
@@ -642,7 +642,7 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
642642
}
643643
match impl_item.node {
644644
MethodImplItem(ref sig, ref body) => {
645-
visitor.visit_fn(FkMethod(impl_item.ident, sig), &sig.decl,
645+
visitor.visit_fn(FkMethod(impl_item.ident, sig, Some(impl_item.vis)), &sig.decl,
646646
body, impl_item.span, impl_item.id);
647647
}
648648
TypeImplItem(ref ty) => {

0 commit comments

Comments
 (0)