-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
(I don't have a great solution here, and this issue isn't terribly important. So this is a discussion and brainstorming issue, which may reach no conclusion.)
Spec editors often confuse nested navigable and child navigable, presumably because the names are very similar. Also note that child navigable kind of has two definitions. So the three concepts involved are actually:
- navigable X is a child navigable of navigable Y: a boolean relational operator
- navigable X is a child navigable: a boolean predicate
- navigable container C's nested navigable: a property whose value is a navigable
Or in programming syntax: x.isChildOf(y)
; x.isChild()
; and c.nestedNavigable
.
Note that with these current definitions, it's always incorrect to say "X is a nested navigable". But this is easy to accidentally do; I've done it myself! And it would be pretty natural to define "navigable X is a nested navigable" (x.isNested()
) as meaning "there exists a navigable container C whose nested navigable is X". But if we did that, the boolean predicate version of "nested navigable" would just be a synonym for the boolean predicate version of "child navigable".
Some potential ideas:
-
Rename "nested navigable" to something less likely to be confused with "child navigable". Maybe... "contained navigable"? "framed navigable"? "target navigable"? Just "navigable", as in "C's navigable"?
-
Consolidate around "child navigable":
- Navigable X is a child navigable of navigable Y
- Navigable container C's child navigable
- Navigable X is a child navigable
This is somewhat attractive because the distinction of which definition you are talking about is not really important in some cases. E.g. the algorithm currently named "create a new nested navigable" could just as easily be named "create a child navigable".