| 505 | } |
| 506 | |
| 507 | void PostVisitIdent(const Expr& expr, const IdentExpr& ident) override { |
| 508 | if (path_.size() >= 3) { |
| 509 | if (ident.name() == "com") { |
| 510 | const Expr* p1 = path_.at(path_.size() - 2); |
| 511 | const Expr* p2 = path_.at(path_.size() - 3); |
| 512 | |
| 513 | if (p1->has_select_expr() && p1->select_expr().field() == "google" && |
| 514 | p2->has_select_expr() && |
| 515 | p2->select_expr().field() == "Identifier") { |
| 516 | target_ = p2->id(); |
| 517 | } |
| 518 | } |
| 519 | } |
| 520 | } |
| 521 | |
| 522 | void TraversalStackUpdate(absl::Span<const Expr*> path) override { |
| 523 | path_ = path; |