Page MenuHomePhabricator

Add a method to query whether an AASTNode is a descendent of another node
ClosedPublic

Authored by joshuaspence on Aug 7 2015, 3:59 AM.
Tags
None
Referenced Files
F13182535: D13819.diff
Thu, May 9, 11:33 PM
Unknown Object (File)
Mon, May 6, 2:14 AM
Unknown Object (File)
Thu, Apr 25, 12:12 AM
Unknown Object (File)
Tue, Apr 16, 5:02 AM
Unknown Object (File)
Apr 12 2024, 6:53 AM
Unknown Object (File)
Apr 11 2024, 8:29 AM
Unknown Object (File)
Apr 5 2024, 1:54 AM
Unknown Object (File)
Apr 1 2024, 9:50 AM
Subscribers

Details

Summary

Ref T8674. This implementation is not really very efficient, but I'll try to iterate on that.

Test Plan

See D13820.

Diff Detail

Repository
rPHU libphutil
Branch
master
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 7547
Build 8134: [Placeholder Plan] Wait for 30 Seconds
Build 8133: arc lint + arc unit

Event Timeline

joshuaspence retitled this revision from to Add a method to query whether an AASTNode is a descendent of another node.
joshuaspence updated this object.
joshuaspence edited the test plan for this revision. (Show Details)
joshuaspence added a reviewer: epriestley.
epriestley edited edge metadata.

Consider isDescendantOf($x) or hasDescendant($x) or isAncestorOf($x) or hasAncestor($x) or similar to make intent more clear -- I think this $x->isDescendant($y) can be reasonably be read as either "$x is a descendant of $y" or "$y is a descendant of $x".

Specifically, I would expect this to mean "$x is a descendant of $y", because most $x->is...() methods return information about $x, but it actually means "$y is a descendant of $x". I would perhaps call this method isAncestorOf($y). This makes the $x/$y relationship more clear, although I don't think X being an ancestor of itself is always intuitive (but I don't have a better term for it offhand).

This revision is now accepted and ready to land.Aug 8 2015, 4:47 PM
joshuaspence edited edge metadata.
This revision was automatically updated to reflect the committed changes.