X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibsyntax%2Fast_util.rs;h=c52c5984858a91cc6b3ce1199cdc0f1d53dbc8c9;hb=beda1f88a7d87cf994fe8e3a5b2fe126e31fcae9;hp=a7c496a0f7b9d164550ac5eee84414f73d1e821c;hpb=3e36eecae4a829cae531c3104547678504e11c72;p=rust.git diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index a7c496a0f7b..c52c5984858 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -28,12 +28,12 @@ pub fn path_name_i(idents: &[Ident]) -> String { idents.iter().map(|i| i.to_string()).collect::>().join("::") } -pub fn stmt_id(s: &Stmt) -> NodeId { +pub fn stmt_id(s: &Stmt) -> Option { match s.node { - StmtDecl(_, id) => id, - StmtExpr(_, id) => id, - StmtSemi(_, id) => id, - StmtMac(..) => panic!("attempted to analyze unexpanded stmt") + StmtDecl(_, id) => Some(id), + StmtExpr(_, id) => Some(id), + StmtSemi(_, id) => Some(id), + StmtMac(..) => None, } } @@ -360,11 +360,6 @@ fn visit_item(&mut self, item: &Item) { } } } - ItemEnum(ref enum_definition, _) => { - for variant in &enum_definition.variants { - self.operation.visit_id(variant.node.id) - } - } _ => {} } @@ -384,7 +379,8 @@ fn visit_block(&mut self, block: &Block) { } fn visit_stmt(&mut self, statement: &Stmt) { - self.operation.visit_id(ast_util::stmt_id(statement)); + self.operation + .visit_id(ast_util::stmt_id(statement).expect("attempted to visit unexpanded stmt")); visit::walk_stmt(self, statement) } @@ -460,9 +456,9 @@ fn visit_struct_def(&mut self, struct_def: &StructDef, _: ast::Ident, _: &ast::Generics, - id: NodeId) { - self.operation.visit_id(id); - struct_def.ctor_id.map(|ctor_id| self.operation.visit_id(ctor_id)); + _: NodeId, + _: Span) { + self.operation.visit_id(struct_def.id); visit::walk_struct_def(self, struct_def); } @@ -476,12 +472,12 @@ fn visit_impl_item(&mut self, ii: &ast::ImplItem) { visit::walk_impl_item(self, ii); } - fn visit_lifetime_ref(&mut self, lifetime: &Lifetime) { + fn visit_lifetime(&mut self, lifetime: &Lifetime) { self.operation.visit_id(lifetime.id); } fn visit_lifetime_def(&mut self, def: &LifetimeDef) { - self.visit_lifetime_ref(&def.lifetime); + self.visit_lifetime(&def.lifetime); } fn visit_trait_ref(&mut self, trait_ref: &TraitRef) { @@ -528,12 +524,6 @@ pub fn compute_id_range_for_fn_body(fk: FnKind, id_visitor.operation.result } -/// Returns true if the given struct def is tuple-like; i.e. that its fields -/// are unnamed. -pub fn struct_def_is_tuple_like(struct_def: &ast::StructDef) -> bool { - struct_def.ctor_id.is_some() -} - /// Returns true if the given pattern consists solely of an identifier /// and false otherwise. pub fn pat_is_ident(pat: P) -> bool {