Defaut methods are not visible if -source 1.7 is set

Joseph Darcy joe.darcy at oracle.com
Tue Oct 29 14:54:11 PDT 2013


On 10/29/2013 12:16 PM, Dan Smith wrote:
> On Oct 29, 2013, at 12:31 PM, Remi Forax <forax at univ-mlv.fr> wrote:
>
>> On 10/29/2013 06:48 PM, Brian Goetz wrote:
>>> The root problem is that -source 1.7 still exposes 1.8 libraries to the compilation, which is just wrong.  What should happen is we should be compiling with the fictitious -platform 1.7, which not only enforces the 1.7 language level, but also puts the 1.7 JDK classes on the bootclasspath.
>> There is already a warning for that, if you compile -source 1.7 -target 1.7 with javac,
>> you will have a warning saying that you have to set the bootclasspath to a 1.7 rt. jar
> I've made this point before, but do note that other libraries on the classpath are not subject to this constraint or warning.
>

And at least some parties do not use javac's bootclasspath mechanism to 
limit the core API that the compiled code uses; a third party API 
checking tool is used instead. In such workflows, by design the javac 
check is circumvented. (I don't necessary think this is a good workflow, 
but it is being used.)

-Joe



More information about the lambda-spec-observers mailing list