On 19/11/2019 12:43, Chris Hegarty wrote:
:

I’m surprise to see the resolver use `mres.hasIncubatingWarning() == false`, 
rather than ModuleResolution.doNotResolveByDefault(mres).

I think you are asking about the semantics of the two flags in the JDK-specific ModuleResolution class file attribute. Some day we should probably document it although I'm not sure if it's the j.l.module package description, JEP 11, or somewhere else.

The warn-incubating flag is used in all phases to indicate that a module is an incubator module and to warn when the module is resolved. Technically these two concerns could be separated but this need hasn't arisen to date.

The do-not-resolve-by-default flag excludes modules exporting APIs from the default set of named modules to resolve when the initial module is the unnamed module, i.e. class path applications. Technically this could be used to exclude modules that aren't incubator modules (and I think we've got close once or two to doing that).

-Alan.

Reply via email to