[PATCH] 8148100: Convert lambda most specific positive tests to check runtime behavior

bsrbnd bsrbnd at gmail.com
Wed Sep 21 14:24:32 UTC 2016


Please find in attachment an all-in-one patch for the 9 tests, as
discussed previously.

Bernard


2016-09-19 16:01 GMT+02:00 bsrbnd <bsrbnd at gmail.com>:
> Thanks for your advices.
>
> I re-wrote, below, the patch in a more compliant way (I hope).
> I'll perhaps (probably) also go through the 8 others soon, if I have time...
>
> Bernard
>
> diff --git a/test/tools/javac/lambda/MostSpecific10.java
> b/test/tools/javac/lambda/MostSpecific10.java
> --- a/test/tools/javac/lambda/MostSpecific10.java
> +++ b/test/tools/javac/lambda/MostSpecific10.java
> @@ -25,9 +25,12 @@
>   * @test
>   * @bug 8034223
>   * @summary Structural most-specific logic for lambdas, method refs,
> parens, and conditionals
> - * @compile MostSpecific10.java
>   */
> -class MostSpecific10 {
> +public class MostSpecific10 {
> +
> +    public static void main(String[] args) {
> +        new MostSpecific10().test(true);
> +    }
>
>      interface GetInt {
>          int get();
> @@ -38,7 +41,9 @@
>      }
>
>      void m(GetInt getter) {}
> -    void m(GetInteger getter) {}
> +    void m(GetInteger getter) {
> +        throw new RuntimeException("Less-specific method invocation:
> " + getter.getClass());
> +    }
>
>      void test(boolean cond) {
>          m(() -> 23);
>
>
> 2016-09-18 3:11 GMT+02:00 Jonathan Gibbons <jonathan.gibbons at oracle.com>:
>> Bernard,
>>
>> Thanks for posting this patch.
>>
>> It's not wrong to say it explicitly, but the addition of the "@run main"
>> line is unnecessary, since that is the default behavior once you remove the
>> @compile.
>>
>> The replacement for void m(GetInteger getter) should be formatted in a more
>> standard manner.
>>
>> It's more common to put the main method at the head of a test, instead of at
>> the end.
>>
>> We can't check in "partial patches", so either you have to look at the 8
>> other tests and fix them all together, or we have to accept this one change
>> as a "complete" fix for 8148100, and open a new, different issue for the 8
>> other tests. (The OpenJDK rules only permit one changeset per issue per
>> repo,)
>>
>> -- Jon
>>
>>
>>
>>
>> On 9/17/16 10:16 AM, bsrbnd wrote:
>>>
>>> Hi,
>>>
>>> I just wrote a partial patch for issue 8148100.
>>> This is an updated version of
>>> test/tools/javac/lambda/MostSpecific10.java that verifies if the
>>> most-specific method is run with respect to JLS 15.12.2 (and also as
>>> explained in the issue description).
>>> I've not checked the 8 other tests yet...
>>>
>>> Regards,
>>> Bernard
>>>
>>> diff --git a/test/tools/javac/lambda/MostSpecific10.java
>>> b/test/tools/javac/lambda/MostSpecific10.java
>>> --- a/test/tools/javac/lambda/MostSpecific10.java
>>> +++ b/test/tools/javac/lambda/MostSpecific10.java
>>> @@ -26,8 +26,9 @@
>>>    * @bug 8034223
>>>    * @summary Structural most-specific logic for lambdas, method refs,
>>> parens, and conditionals
>>>    * @compile MostSpecific10.java
>>> + * @run main MostSpecific10
>>>    */
>>> -class MostSpecific10 {
>>> +public class MostSpecific10 {
>>>
>>>       interface GetInt {
>>>           int get();
>>> @@ -38,7 +39,7 @@
>>>       }
>>>
>>>       void m(GetInt getter) {}
>>> -    void m(GetInteger getter) {}
>>> +    void m(GetInteger getter) {throw new
>>> RuntimeException("Less-specific method invocation: " +
>>> getter.getClass());}
>>>
>>>       void test(boolean cond) {
>>>           m(() -> 23);
>>> @@ -50,5 +51,9 @@
>>>           m(cond ? (() -> 23) : ("abc"::length) );
>>>           m(( cond ? () -> 23 : cond ? ("abc"::length) : (() -> 23) ));
>>>       }
>>> +
>>> +    public static void main(String[] args) {
>>> +        new MostSpecific10().test(true);
>>> +    }
>>>
>>>   }
>>
>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch_8148100.diff
Type: text/x-patch
Size: 7910 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20160921/3e645a50/patch_8148100.diff>


More information about the compiler-dev mailing list