Open tkoeppe opened 3 years ago
I think using "verify" would be wrong: the name that is dependent is looked up before it is known to be dependent, not as a double-check. (That's not to say we can't find a better word!)
The "X or Y and Z" cannot be reasonably interpreted as "(X or Y) and Z" because Z refers to an object identified by Y. We can of course use bullets or an extra "if" to avoid the reader having to figure this out.
The "it" is the elaborated-type-specifier; there is no sentence fragment here, just a compound predicate. (Jens was pointing out that adding an "it" could be misconstrued as bringing in a new antecedent.) Also, the comment to which this comment links has the same link twice, so I don't know what the other "request[] for rewording" is.
It's perfectly possible that I eventually messed up the copy paste and copied something twice!
The "therefrom" is "from [that] explicit instantiation of that entity" (again).
Either of "whose" -> "which" or "in whose" -> "whose" would change the meaning of the sentence, as would rewording to omit "search" (which causes the naming class to be the derived class, not the base class, unless d.B::x
is used).
Jens' interpretation is correct; the reachability check is between D3 and D2, although I haven't tried to construct an example where this differs from checking D1/D2.
The use of "it could be a friend function" is preexisting.
The "member of a class that is the current instantiation" is preexisting.
Via the same comment here: a lookup context is an entity; the check against "the current instantiation" is complicated by the existing confusion between id-expressions and entities in the use of that phrase.
The phrase "program point" is preexisting (although often just as the word "point").
The "point of the lookup" is the program point from which the lookup is performed. Every lookup has such a point, although in some cases one lookup is described in terms of another which is supposed to take place at the same point without repeating "from a point P" on both sides.
Here, "it" refers to the "class, namespace, or enumeration" in question.
The "(original) lookup context" is the lookup context of Q, not the one used for the surrogate lookups in bullets 2 and 3.
"Such a constructor name" is preexisting (not that rectifying this misuse of "name" would be at all out of scope here).
"The result is the entity" is preexisting (the diff is misleading here).
Thanks a lot for all the clarifications and double-checks!
See #4379 for context.
Please feel free to derive new Issues from this material or email the wording reflectors.
Also feel free to directly edit the posts below with updated information.