Error to correct: I meant a "requires" not an "export". Thank you.
Cheers, Paul On Thu, Jul 28, 2016 at 1:57 PM, Paul Benedict <pbened...@apache.org> wrote: > Alex, I thank you for repeating the explanation again, but I find your > definition hard to accept. To me, something that's synthetic is > manufactured. If the compiler automatically shims my class file with an > export to "java.base", that sounds pretty synthetic/manufactured to me. I > view that as a separate and unrelated issue to what's mandated. Why do you > believe you must bring in the knowledge of implicitness/explicitness into > your synthetic definition? > > I thought you wanted to retain the difference between what a user > specified and what something else specified? The something else here would > be the JLS or compiler. > > Cheers, > Paul > > On Thu, Jul 28, 2016 at 1:17 PM, Alex Buckley <alex.buck...@oracle.com> > wrote: > >> I already explained that ACC_SYNTHETIC and ACC_MANDATED mean different >> things. A dependence on java.base is never ACC_SYNTHETIC because it is >> either explicitly declared (no ACC_SYNTHETIC, no ACC_MANDATED) or >> implicitly declared (no ACC_SYNTHETIC, yes ACC_MANDATED) -- there are no >> other possibilities. >> >> Alex >> >> >> On 7/28/2016 9:11 AM, Paul Benedict wrote: >> >>> Although "java.base" is mandated to be included, it is also inserted >>> automatically by the compiler. Isn't anything automatically inserted by >>> the >>> compiler considered synthetic? When I examine the class file, I get >>> ACC_MANDATED but not ACC_SYNTHETIC for this export. I believe both should >>> be there. >>> >>> Furthermore, the user is allowed to explicitly ask for "java.base" to be >>> a >>> requirement. When this happens, I think ACC_SYNTHETIC should not be >>> included. >>> >>> Cheers, >>> Paul >>> >>> >