cast at call site problem

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Wed Apr 3 03:54:52 PDT 2013


On 03/04/13 11:38, Anna Kozlova wrote:
> What are reasons behind that then?
Cast conversion rules are very complex - and defining an inference 
process that would satisfy them would make inference a lot more complex. 
It would also increase the surface of backward incompatibilities.

Maurizio
>
> -----Original Message-----
> From: lambda-dev-bounces at openjdk.java.net
> [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Maurizio
> Cimadamore
> Sent: Wednesday, April 03, 2013 11:54 AM
> To: Anna Kozlova
> Cc: lambda-dev at openjdk.java.net
> Subject: Re: cast at call site problem
>
> On 01/04/13 15:59, Anna Kozlova wrote:
>> The call foo(Collections.emptySet()); is much more clean I suppose. I
>> just wonder why the redundant cast leads to compilation error.
> As per spec EDR, a cast does not pass its type down to the expression being
> converted. This means that the call to emptySet is typed with an Object
> target; hence the error. If you remove the cast, the right target is used.
>
> Maurizio
>> Thanks
>>
>>    
>>
>> From: paulus.benedictus at gmail.com [mailto:paulus.benedictus at gmail.com]
>> On Behalf Of Paul Benedict
>> Sent: Monday, April 01, 2013 4:51 PM
>> To: Anna Kozlova
>> Cc: lambda-dev at openjdk.java.net
>> Subject: Re: cast at call site problem
>>
>>    
>>
>> I believe you want to write this:
>> foo(Collections.<String>emptySet());
>>
>>    
>>
>> On Mon, Apr 1, 2013 at 9:48 AM, Anna Kozlova
>> <Anna.Kozlova at jetbrains.com>
>> wrote:
>>
>> Hello all,
>>
>> Is it a bug or is it an intentional behavior:
>> This code compiles
>> {code}
>>       void foo(Set<String> s) {}
>>
>>       void bar() {
>>           foo(Collections.emptySet());
>>       }
>> {code}
>>
>> but this code doesn't:
>> {code}
>>       void foo(Set<String> s) {}
>>
>>       void bar() {
>>           foo((Set<String>)Collections.emptySet());
>>       }
>> {code}
>>
>> Lambda build 83.
>>
>> Thanks
>> Anna
>>
>>
>>
>>
>>    
>>
>>
>>
>>
>
>
> !DSPAM:35,515bfca371141724266025!
>



More information about the lambda-dev mailing list