[lvti] Possible compiler bug

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon Jun 26 11:20:54 UTC 2017


This should be fixed now.

Thanks
Maurizio


On 25/06/17 21:48, Maurizio Cimadamore wrote:
> Thanks - I'll look into this - seems like the rule for rejecting 
> self-references is bleeding into wrong places.
>
> I'll also correct the error messages - thanks for noticing
>
> Maurizio
>
>
> On 25/06/17 11:36, Tagir Valeev wrote:
>> Hello! The following code is not compilable in [lvti] branch, but it 
>> should
>> be, to my opinion:
>>
>> public class LvtiBug {
>>    int x() { return 0; }
>>
>>    void test() {
>>      var x = x();
>>    }
>> }
>>
>> $ javac LvtiBug.java
>> LvtiBug.java:5: error: cannot infer type for local variable x
>>      var x = x();
>>          ^
>>    (cannot use 'val' on self-referencing variable)
>> 1 error
>>
>> Also, I believe, the message should have 'var', not 'val':
>>
>> diff -r a7aba322684f
>> src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties 
>>
>> ---
>> a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties 
>>
>> Fri
>> Jun 23 11:47:57 2017 +0100
>> +++
>> b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties 
>>
>> Sun
>> Jun 25 17:34:47 2017 +0700
>> @@ -1205,7 +1205,7 @@
>>       variable initializer is ''null''
>>
>>   compiler.misc.local.missing.init=\
>> -    cannot use ''val'' on variable without initializer
>> +    cannot use ''var'' on variable without initializer
>>
>>   compiler.misc.local.lambda.missing.target=\
>>       lambda expression needs an explicit target-type
>> @@ -1217,7 +1217,7 @@
>>       array initializer needs an explicit target-type
>>
>>   compiler.misc.local.self.ref=\
>> -    cannot use ''val'' on self-referencing variable
>> +    cannot use ''var'' on self-referencing variable
>>
>>   compiler.misc.local.non.denotable=\
>>       inferred type is non denotable
>>
>> With best regards,
>> Tagir Valeev
>



More information about the amber-dev mailing list