replace <? extends Object> with <?> during substitution (IDEA-64775)

This commit is contained in:
anna
2012-04-16 14:24:33 +02:00
parent 0c15dccf23
commit 654f6cd973
3 changed files with 9 additions and 2 deletions
@@ -19,6 +19,7 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Key;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.util.PsiUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -66,6 +67,11 @@ public class PsiWildcardType extends PsiType {
public static PsiWildcardType changeBound(@NotNull PsiWildcardType type, @NotNull PsiType newBound) {
LOG.assertTrue(type.getBound() != null);
if (type.myIsExtending) {
if (newBound.equalsToText(CommonClassNames.JAVA_LANG_OBJECT)) {
return createUnbounded(type.myManager);
}
}
return new PsiWildcardType(type.myManager, type.myIsExtending, newBound);
}