Skip to content

Commit b082f78

Browse files
committed
initialize Access with macro
1 parent 409297f commit b082f78

File tree

1 file changed

+19
-52
lines changed

1 file changed

+19
-52
lines changed

src/librustc_save_analysis/dump_visitor.rs

+19-52
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,15 @@ macro_rules! down_cast_data {
5959
};
6060
}
6161

62+
macro_rules! access_from {
63+
($save_ctxt:expr, $item:expr) => {
64+
Access {
65+
public: $item.vis == ast::Visibility::Public,
66+
reachable: $save_ctxt.analysis.access_levels.is_reachable($item.id),
67+
}
68+
}
69+
}
70+
6271
pub struct DumpVisitor<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> {
6372
save_ctxt: SaveContext<'l, 'tcx>,
6473
tcx: TyCtxt<'l, 'tcx, 'tcx>,
@@ -416,13 +425,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
416425
fn process_struct_field_def(&mut self, field: &ast::StructField, parent_id: NodeId) {
417426
let field_data = self.save_ctxt.get_field_data(field, parent_id);
418427
if let Some(field_data) = field_data {
419-
self.dumper.dump_def(
420-
&Access {
421-
public: field.vis == ast::Visibility::Public,
422-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(field.id),
423-
},
424-
field_data,
425-
);
428+
self.dumper.dump_def(&access_from!(self.save_ctxt, field), field_data);
426429
}
427430
}
428431

@@ -482,13 +485,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
482485
|v| v.process_formals(&decl.inputs, &fn_data.qualname),
483486
);
484487
self.process_generic_params(ty_params, item.span, &fn_data.qualname, item.id);
485-
self.dumper.dump_def(
486-
&Access {
487-
public: item.vis == ast::Visibility::Public,
488-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(item.id),
489-
},
490-
fn_data,
491-
);
488+
self.dumper.dump_def(&access_from!(self.save_ctxt, item), fn_data);
492489
}
493490

494491
for arg in &decl.inputs {
@@ -511,13 +508,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
511508
self.nest_tables(item.id, |v| {
512509
if let Some(var_data) = v.save_ctxt.get_item_data(item) {
513510
down_cast_data!(var_data, DefData, item.span);
514-
v.dumper.dump_def(
515-
&Access {
516-
public: item.vis == ast::Visibility::Public,
517-
reachable: v.save_ctxt.analysis.access_levels.is_reachable(item.id),
518-
},
519-
var_data,
520-
);
511+
v.dumper.dump_def(&access_from!(v.save_ctxt, item), var_data);
521512
}
522513
v.visit_ty(&typ);
523514
v.visit_expr(expr);
@@ -623,10 +614,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
623614
if !self.span.filter_generated(sub_span, item.span) {
624615
let span = self.span_from_span(sub_span.expect("No span found for struct"));
625616
self.dumper.dump_def(
626-
&Access {
627-
public: item.vis == ast::Visibility::Public,
628-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(item.id),
629-
},
617+
&access_from!(self.save_ctxt, item),
630618
Def {
631619
kind,
632620
id: ::id_from_node_id(item.id, &self.save_ctxt),
@@ -665,10 +653,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
665653
};
666654
down_cast_data!(enum_data, DefData, item.span);
667655

668-
let access = Access {
669-
public: item.vis == ast::Visibility::Public,
670-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(item.id),
671-
};
656+
let access = access_from!(self.save_ctxt, item);
672657

673658
for variant in &enum_definition.variants {
674659
let name = variant.node.name.name.to_string();
@@ -817,10 +802,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
817802
.map(|i| ::id_from_node_id(i.id, &self.save_ctxt))
818803
.collect();
819804
self.dumper.dump_def(
820-
&Access {
821-
public: item.vis == ast::Visibility::Public,
822-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(item.id),
823-
},
805+
&access_from!(self.save_ctxt, item),
824806
Def {
825807
kind: DefKind::Trait,
826808
id,
@@ -883,13 +865,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
883865
fn process_mod(&mut self, item: &ast::Item) {
884866
if let Some(mod_data) = self.save_ctxt.get_item_data(item) {
885867
down_cast_data!(mod_data, DefData, item.span);
886-
self.dumper.dump_def(
887-
&Access {
888-
public: item.vis == ast::Visibility::Public,
889-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(item.id),
890-
},
891-
mod_data,
892-
);
868+
self.dumper.dump_def(&access_from!(self.save_ctxt, item), mod_data);
893869
}
894870
}
895871

@@ -1300,10 +1276,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> Visitor<'l> for DumpVisitor<'l, 'tc
13001276
self.process_macro_use(item.span);
13011277
match item.node {
13021278
Use(ref use_item) => {
1303-
let access = Access {
1304-
public: item.vis == ast::Visibility::Public,
1305-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(item.id),
1306-
};
1279+
let access = access_from!(self.save_ctxt, item);
13071280

13081281
match use_item.node {
13091282
ast::ViewPathSimple(ident, ref path) => {
@@ -1432,10 +1405,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> Visitor<'l> for DumpVisitor<'l, 'tc
14321405
let id = ::id_from_node_id(item.id, &self.save_ctxt);
14331406

14341407
self.dumper.dump_def(
1435-
&Access {
1436-
public: item.vis == ast::Visibility::Public,
1437-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(item.id),
1438-
},
1408+
&access_from!(self.save_ctxt, item),
14391409
Def {
14401410
kind: DefKind::Type,
14411411
id,
@@ -1727,10 +1697,7 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> Visitor<'l> for DumpVisitor<'l, 'tc
17271697
}
17281698

17291699
fn visit_foreign_item(&mut self, item: &'l ast::ForeignItem) {
1730-
let access = Access {
1731-
public: item.vis == ast::Visibility::Public,
1732-
reachable: self.save_ctxt.analysis.access_levels.is_reachable(item.id),
1733-
};
1700+
let access = access_from!(self.save_ctxt, item);
17341701

17351702
match item.node {
17361703
ast::ForeignItemKind::Fn(ref decl, ref generics) => {

0 commit comments

Comments
 (0)