pass parameter type inference policy to produce ? extends for cases when no constraints were found during inference (IDEA-156231)

This commit is contained in:
Anna.Kozlova
2016-05-23 16:29:23 +02:00
parent 36978bb4bf
commit cd63335147
7 changed files with 108 additions and 11 deletions
@@ -0,0 +1,24 @@
class FooBar {
{
addSourceRoot(JavaResourceRootType.RESOURCE);
}
public static <P extends JpsElement> void addSourceRoot(JpsModuleSourceRootType<P> rootType) {
}
interface JpsElement {}
interface JpsModuleSourceRootType<P extends JpsElement> {}
static class JavaResourceRootProperties extends JpsElementBase<JavaResourceRootProperties>{}
static class JpsElementBase<Self extends JpsElementBase<Self>> implements JpsElement {}
static class JavaResourceRootType implements JpsModuleSourceRootType<JavaResourceRootProperties> {
public static final JavaResourceRootType RESOURCE = new JavaResourceRootType();
public static final JavaResourceRootType TEST_RESOURCE = new JavaResourceRootType();
}
}
@@ -0,0 +1,24 @@
class FooBar {
{
addSourceRoot(JavaResourceRootType.<caret>);
}
public static <P extends JpsElement> void addSourceRoot(JpsModuleSourceRootType<P> rootType) {
}
interface JpsElement {}
interface JpsModuleSourceRootType<P extends JpsElement> {}
static class JavaResourceRootProperties extends JpsElementBase<JavaResourceRootProperties>{}
static class JpsElementBase<Self extends JpsElementBase<Self>> implements JpsElement {}
static class JavaResourceRootType implements JpsModuleSourceRootType<JavaResourceRootProperties> {
public static final JavaResourceRootType RESOURCE = new JavaResourceRootType();
public static final JavaResourceRootType TEST_RESOURCE = new JavaResourceRootType();
}
}
@@ -0,0 +1,24 @@
class FooBar {
{
addSourceRoot(JavaResourceRootType.<caret>);
}
public static <P extends JpsElement> void addSourceRoot(JpsModuleSourceRootType<P> rootType) {
}
interface JpsElement {}
interface JpsModuleSourceRootType<P extends JpsElement> {}
static class JavaResourceRootProperties extends JpsElementBase<JavaResourceRootProperties>{}
static class JpsElementBase<Self extends JpsElementBase<Self>> implements JpsElement {}
static class JavaResourceRootType implements JpsModuleSourceRootType<JavaResourceRootProperties> {
public static final JavaResourceRootType RESOURCE = new JavaResourceRootType();
public static final JavaResourceRootType TEST_RESOURCE = new JavaResourceRootType();
}
}
@@ -85,6 +85,10 @@ public class SmartType18CompletionTest extends LightFixtureCompletionTestCase {
doTest(false);
}
public void testNoConstraintsWildcard() throws Exception {
doTest();
}
public void testInheritorConstructorRef() {
myFixture.addClass("package intf; public interface Intf<T> {}");
myFixture.addClass("package foo; public class ImplBar implements intf.Intf<String> {}");