no error when module exports non-existing package
Jonathan Gibbons
jonathan.gibbons at oracle.com
Wed Dec 2 18:08:58 UTC 2015
On 12/02/2015 09:41 AM, Victor Rudometov wrote:
> Hi,
> Javac does not complain if user exports a package that does not exist.
> If it was not done intentionally, it would be good to report an error,
> or at least a warning.
> Today was the third time I saw the code with a typo or just incorrect
> package name in module-info's exports statement.
>
> Thanks.
> Victor.
>
I agree we should improve javac in this area. We probably need some spec
clarification from Alex on the intent here. See JLS 8, 7.4.3
Observability of a package. In particular, that says that a package is
observable if a subpackage is observable. javac tries to honor that
specification, but there are well known hard-to-fix bugs in this area.
As for module declarations, if p.q.Class exists in a module and no
other classes anywhere in p or its subpackages, is it OK to export p
from the module? From the point of view of the module, the package is
observable, but it seems intuitively wrong to allow an export of a
package that contains no types. In other words, if we are going to
catch typos in exported package names, I think we ought to consider
"empty" packages as well as mistyped packages.
-- Jon
More information about the jigsaw-dev
mailing list