- 
    
Bug
 - 
    Resolution: Duplicate
 - 
    
  P3                     
     - 
    None
 - 
    9
 
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build | 
|---|---|---|---|---|---|---|
| JDK-8044228 | 8u20 | Dan Smith | P3 | Closed | Duplicate | 
                    The following compiles in 8 but fails to compile current in 9:
import java.util.ArrayList;
import java.util.List;
public class CaptureInference {
public List<String> l;
public CaptureInference() {
l = new ArrayList<>(get(String.class));
}
public static <T> List<? extends T> get(Class<T> clazz) {
return null;
}
}
/*
String.class -> Class<t>
Class<String> -> Class<t>
{ t = String }
List<? extends t> -> Collection<? extends e>
{ t = String, z <: Object, List<z> = capture(List<? extends t>) }
List<z> -> Collection<? extends e>
{ t = String, z <: Object, z <: e, List<z> = capture(List<? extends t>) }
ArrayList<e> -> List<String>
{ t = String, e = String, z <: Object, z <: e, List<z> = capture(List<? extends t>) }
*/
            
import java.util.ArrayList;
import java.util.List;
public class CaptureInference {
public List<String> l;
public CaptureInference() {
l = new ArrayList<>(get(String.class));
}
public static <T> List<? extends T> get(Class<T> clazz) {
return null;
}
}
/*
String.class -> Class<t>
Class<String> -> Class<t>
{ t = String }
List<? extends t> -> Collection<? extends e>
{ t = String, z <: Object, List<z> = capture(List<? extends t>) }
List<z> -> Collection<? extends e>
{ t = String, z <: Object, z <: e, List<z> = capture(List<? extends t>) }
ArrayList<e> -> List<String>
{ t = String, e = String, z <: Object, z <: e, List<z> = capture(List<? extends t>) }
*/
- backported by
 - 
                    
JDK-8044228 Inference failure involving capture inference variable
-         
     - Closed
 
 -         
 
- duplicates
 - 
                    
JDK-8039214 Inference should not map capture variables to their upper bounds
-         
     - Closed
 
 -         
 - 
                    
JDK-8061782 Unable to compile code using wildcard generics under 8u25 but builds under 8u05
-         
     - Closed
 
 -         
 
- relates to
 - 
                    
JDK-8033718 Inference ignores capture variable as upper bound
-         
     - Closed
 
 -