mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
remap types according to the current place (IDEA-187378)
This commit is contained in:
+3
-5
@@ -28,8 +28,6 @@ import com.intellij.psi.search.searches.SuperMethodsSearch;
|
||||
import com.intellij.psi.util.*;
|
||||
import com.intellij.util.ArrayUtilRt;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import gnu.trove.THashMap;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -1487,10 +1485,10 @@ public class GenericsHighlightUtil {
|
||||
final PsiSubstitutor substitutor = resolveResult.getSubstitutor();
|
||||
final GlobalSearchScope resolveScope = ref.getResolveScope();
|
||||
|
||||
message = isTypeAccessible(substitutor.substitute(method.getReturnType()), classes, false, resolveScope, facade);
|
||||
message = isTypeAccessible(PsiClassImplUtil.correctType(substitutor.substitute(method.getReturnType()), resolveScope), classes, false, resolveScope, facade);
|
||||
if (message == null) {
|
||||
for (PsiType type : method.getSignature(substitutor).getParameterTypes()) {
|
||||
message = isTypeAccessible(type, classes, false, resolveScope, facade);
|
||||
message = isTypeAccessible(PsiClassImplUtil.correctType(type, resolveScope), classes, false, resolveScope, facade);
|
||||
if (message != null) {
|
||||
break;
|
||||
}
|
||||
@@ -1503,7 +1501,7 @@ public class GenericsHighlightUtil {
|
||||
if (resolve instanceof PsiField) {
|
||||
final GlobalSearchScope resolveScope = ref.getResolveScope();
|
||||
final JavaPsiFacade facade = JavaPsiFacade.getInstance(ref.getProject());
|
||||
message = isTypeAccessible(((PsiField)resolve).getType(), new HashSet<>(), false, resolveScope, facade);
|
||||
message = isTypeAccessible(PsiClassImplUtil.correctType(((PsiField)resolve).getType(), resolveScope), new HashSet<>(), false, resolveScope, facade);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package p;
|
||||
|
||||
|
||||
class Class1 {
|
||||
void f(I i) {
|
||||
java.io.ObjectInput input = i.get();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package p;
|
||||
|
||||
interface I {
|
||||
java.io.ObjectInput get();
|
||||
}
|
||||
+9
@@ -186,6 +186,15 @@ public class MultipleJdksHighlightingTest extends UsefulTestCase {
|
||||
myFixture.checkHighlighting();
|
||||
}
|
||||
|
||||
public void testDependsOnNewerJdk() {
|
||||
IdeaTestUtil.setModuleLanguageLevel(myJava7Module, LanguageLevel.JDK_1_7);
|
||||
ModuleRootModificationUtil.addDependency(myJava3Module, myJava7Module);
|
||||
final String name = getTestName(false);
|
||||
myFixture.copyFileToProject("java7/p/" + name + ".java");
|
||||
myFixture.configureByFiles("java3/p/" + name + ".java");
|
||||
myFixture.checkHighlighting();
|
||||
}
|
||||
|
||||
public void testMissedAutoCloseable() {
|
||||
IdeaTestUtil.setModuleLanguageLevel(myJava7Module, LanguageLevel.JDK_1_7);
|
||||
ModuleRootModificationUtil.addDependency(myJava3Module, myJava7Module);
|
||||
|
||||
Reference in New Issue
Block a user