Skip to content

Commit 42cd5d4

Browse files
committed
make it possible to track where hash diverges
1 parent e359147 commit 42cd5d4

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/librustc_incremental/calculate_svh.rs

+23
Original file line numberDiff line numberDiff line change
@@ -306,12 +306,14 @@ mod svh_visitor {
306306

307307
fn visit_variant_data(&mut self, s: &'a VariantData, name: Name,
308308
g: &'a Generics, _: NodeId, _: Span) {
309+
debug!("visit_variant_data: st={:?}", self.st);
309310
SawStructDef(name.as_str()).hash(self.st);
310311
visit::walk_generics(self, g);
311312
visit::walk_struct_def(self, s)
312313
}
313314

314315
fn visit_variant(&mut self, v: &'a Variant, g: &'a Generics, item_id: NodeId) {
316+
debug!("visit_variant: st={:?}", self.st);
315317
SawVariant.hash(self.st);
316318
// walk_variant does not call walk_generics, so do it here.
317319
visit::walk_generics(self, g);
@@ -333,14 +335,17 @@ mod svh_visitor {
333335
// pattern, please move that method up above this comment.)
334336

335337
fn visit_name(&mut self, _: Span, name: Name) {
338+
debug!("visit_name: st={:?}", self.st);
336339
SawIdent(name.as_str()).hash(self.st);
337340
}
338341

339342
fn visit_lifetime(&mut self, l: &'a Lifetime) {
343+
debug!("visit_lifetime: st={:?}", self.st);
340344
SawLifetime(l.name.as_str()).hash(self.st);
341345
}
342346

343347
fn visit_lifetime_def(&mut self, l: &'a LifetimeDef) {
348+
debug!("visit_lifetime_def: st={:?}", self.st);
344349
SawLifetimeDef(l.lifetime.name.as_str()).hash(self.st);
345350
}
346351

@@ -350,14 +355,18 @@ mod svh_visitor {
350355
// that a change to a crate body will require downstream
351356
// crates to be recompiled.
352357
fn visit_expr(&mut self, ex: &'a Expr) {
358+
debug!("visit_expr: st={:?}", self.st);
353359
SawExpr(saw_expr(&ex.node)).hash(self.st); visit::walk_expr(self, ex)
354360
}
355361

356362
fn visit_stmt(&mut self, s: &'a Stmt) {
363+
debug!("visit_stmt: st={:?}", self.st);
357364
SawStmt(saw_stmt(&s.node)).hash(self.st); visit::walk_stmt(self, s)
358365
}
359366

360367
fn visit_foreign_item(&mut self, i: &'a ForeignItem) {
368+
debug!("visit_foreign_item: st={:?}", self.st);
369+
361370
// FIXME (#14132) ideally we would incorporate privacy (or
362371
// perhaps reachability) somewhere here, so foreign items
363372
// that do not leak into downstream crates would not be
@@ -367,6 +376,7 @@ mod svh_visitor {
367376

368377
fn visit_item(&mut self, i: &'a Item) {
369378
debug!("visit_item: {:?} st={:?}", i, self.st);
379+
370380
// FIXME (#14132) ideally would incorporate reachability
371381
// analysis somewhere here, so items that never leak into
372382
// downstream crates (e.g. via monomorphisation or
@@ -375,55 +385,68 @@ mod svh_visitor {
375385
}
376386

377387
fn visit_mod(&mut self, m: &'a Mod, _s: Span, _n: NodeId) {
388+
debug!("visit_mod: st={:?}", self.st);
378389
SawMod.hash(self.st); visit::walk_mod(self, m)
379390
}
380391

381392
fn visit_decl(&mut self, d: &'a Decl) {
393+
debug!("visit_decl: st={:?}", self.st);
382394
SawDecl.hash(self.st); visit::walk_decl(self, d)
383395
}
384396

385397
fn visit_ty(&mut self, t: &'a Ty) {
398+
debug!("visit_ty: st={:?}", self.st);
386399
SawTy.hash(self.st); visit::walk_ty(self, t)
387400
}
388401

389402
fn visit_generics(&mut self, g: &'a Generics) {
403+
debug!("visit_generics: st={:?}", self.st);
390404
SawGenerics.hash(self.st); visit::walk_generics(self, g)
391405
}
392406

393407
fn visit_fn(&mut self, fk: FnKind<'a>, fd: &'a FnDecl,
394408
b: &'a Block, s: Span, _: NodeId) {
409+
debug!("visit_fn: st={:?}", self.st);
395410
SawFn.hash(self.st); visit::walk_fn(self, fk, fd, b, s)
396411
}
397412

398413
fn visit_trait_item(&mut self, ti: &'a TraitItem) {
414+
debug!("visit_trait_item: st={:?}", self.st);
399415
SawTraitItem.hash(self.st); visit::walk_trait_item(self, ti)
400416
}
401417

402418
fn visit_impl_item(&mut self, ii: &'a ImplItem) {
419+
debug!("visit_impl_item: st={:?}", self.st);
403420
SawImplItem.hash(self.st); visit::walk_impl_item(self, ii)
404421
}
405422

406423
fn visit_struct_field(&mut self, s: &'a StructField) {
424+
debug!("visit_struct_field: st={:?}", self.st);
407425
SawStructField.hash(self.st); visit::walk_struct_field(self, s)
408426
}
409427

410428
fn visit_path(&mut self, path: &'a Path, _: ast::NodeId) {
429+
debug!("visit_path: st={:?}", self.st);
411430
SawPath.hash(self.st); visit::walk_path(self, path)
412431
}
413432

414433
fn visit_block(&mut self, b: &'a Block) {
434+
debug!("visit_block: st={:?}", self.st);
415435
SawBlock.hash(self.st); visit::walk_block(self, b)
416436
}
417437

418438
fn visit_pat(&mut self, p: &'a Pat) {
439+
debug!("visit_pat: st={:?}", self.st);
419440
SawPat.hash(self.st); visit::walk_pat(self, p)
420441
}
421442

422443
fn visit_local(&mut self, l: &'a Local) {
444+
debug!("visit_local: st={:?}", self.st);
423445
SawLocal.hash(self.st); visit::walk_local(self, l)
424446
}
425447

426448
fn visit_arm(&mut self, a: &'a Arm) {
449+
debug!("visit_arm: st={:?}", self.st);
427450
SawArm.hash(self.st); visit::walk_arm(self, a)
428451
}
429452
}

0 commit comments

Comments
 (0)