[module.reach] Clarify that only TUs with an interface dependency may be incidentally reachable #4032
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I think this is the intent of that sentence. Another possible reading, and the one my rewording attempts to prevent, is that because it doesn't say that no other TUs may be reachable, any TU may be, and it is just giving an example of a specific likely case of incidental reachability. But if that is the intent, then we probably shouldn't have it in normative text.
There is an existing issue in the wording (#3502) in that http://eel.is/c++draft/module#import-10 defines "has an interface dependency" as a relationship between two TUs, but this uses it as a relationship between "point with the program" and a TU. This makes it ambiguous about whether TU imported later in a file may be reachable at an earlier point. I am not trying to resolve that ambiguity with this change.