[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-compiler-dev
Subject:    Apparent generics compilation bug new to Java 1.7
From:       maurizio.cimadamore () oracle ! com (Maurizio Cimadamore)
Date:       2012-02-23 18:09:55
Message-ID: 4F4680F3.2060005 () oracle ! com
[Download RAW message or body]

Thanks for the report - this problem is caused by a bug in type-variable 
substitution when checking for generic type well-formedness. We are 
working on a fix.

Thanks
Maurizio

On 23/02/12 15:09, Benedict Elliott Smith wrote:
> I'm not using I and I2 interchangeably, I'm just swapping them when 
> declaring a new binding for the type parameters of (a different) A.
>
> i.e. let's call the class definition A, and the type I am declaring 
> for the method return value A' ; and its corresponding type parameters 
> K', V', I' and I2'
>
> All I am saying is that K' ^= V, V' ^= K, I' ^= I2 and I2' ^= I
>
> Now, I2 ^= "?" extends B<V, K> and I ^= "?" extends B<K, V>
>
> (now ignoring the ? extends for brevity...)
>
> Since K' ^= V and V' ^= K; we have I' == I2 == B<K',V'> and I2' == I 
> == B<V',K'>
>
> Which looks fine to me. Could you clarify your argument if I'm missing 
> something?
>
>
>
>
>
>
>
> On 23 February 2012 14:46, Florian Weimer <fweimer at bfk.de 
> <mailto:fweimer at bfk.de>> wrote:
>
>     * Benedict Elliott Smith:
>
>     > The below class no longer compiles (1.7.02); I can't see any
>     good reason
>     > for it not to, and nor can ecj or the 1.6 JDK, so I think it is
>     quite
>     > probably a bug.
>
>     Why are I and I2 interchangeable?
>
>     > public class TypeTest {
>     >  static abstract class A<K, V, I extends B<K, V>, I2 extends
>     B<V, K>> {
>     >  abstract A<V, K, I2, I> test();
>     >  }
>     >  static class B<K, V> {
>     >  }
>     > }
>
>     They have different bounds, so I think you can't swap them.
>
>     --
>     Florian Weimer <fweimer at bfk.de <mailto:fweimer at bfk.de>>
>     BFK edv-consulting GmbH http://www.bfk.de/
>     Kriegsstra?e 100              tel: +49-721-96201-1
>     <tel:%2B49-721-96201-1>
>     D-76133 Karlsruhe             fax: +49-721-96201-99
>     <tel:%2B49-721-96201-99>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20120223/0a61bae3/attachment.html 

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic