On Tue, 8 Sep 2026 16:07:10 GMT, Pavel Rappo <[email protected]> wrote:
>> Right. No good way to express `--inverse ===> (--package || --require ||
>> --regex)` but `(--package || --require || --regex) =/=> --inverse` without
>> some convoluted wording. I guess `must` is good enough. I see you fixed the
>> `directly and indirectly` wording in the man page too.
>
>> I see you fixed the directly and indirectly wording in the man page too.
>
> I changed "directly and indirectly" to "directly or indirectly" where
> applicable throughout the jdeps documentation.
>
> English is not my L1, but I believe that in technical (and maybe general)
> writing words OR and AND mean pretty much the same as their math
> counterparts: OR is for union, AND is for intersection.
>
> If we want to state that something is true whether the dependence is direct
> or indirect, we use OR. If we want to state that something is true if
> dependence is both direct and indirect we use AND.
>
> Now, I can't recall off the top of my head if there are cases like that, but
> I would be surprised if something in Java modules was only true when
> dependence is both direct and indirect. That might not be the case for other
> constructs. For example, compare with this wording for annotations:
>
> * If annotations of
> * the annotation type {@code annotationClass} are found to be both
> * directly and indirectly present, then {@link
> * #getDeclaredAnnotations()} will get called to determine the
> * order of the elements in the returned array.
>
> Note that the above sentence uses "both" to be extra clear.
>
> The point is "or" is the correct word here.
FWIW, jmod has the same issues regarding AND/OR, but I didn't touch it in this
PR.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/32701#discussion_r3959929708