mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
prefer final over finalize()
This commit is contained in:
+12
-1
@@ -15,8 +15,10 @@
|
||||
*/
|
||||
package com.intellij.psi.util.proximity;
|
||||
|
||||
import com.intellij.psi.CommonClassNames;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.util.ProximityLocation;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -24,7 +26,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
/**
|
||||
* @author peter
|
||||
*/
|
||||
public class KnownPackageWeigher extends ProximityWeigher {
|
||||
public class KnownElementWeigher extends ProximityWeigher {
|
||||
|
||||
public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) {
|
||||
if (element instanceof PsiClass) {
|
||||
@@ -34,6 +36,15 @@ public class KnownPackageWeigher extends ProximityWeigher {
|
||||
if (qname.startsWith("javax.")) return 1;
|
||||
}
|
||||
}
|
||||
if (element instanceof PsiMethod) {
|
||||
final PsiMethod method = (PsiMethod)element;
|
||||
if ("finalize".equals(method.getName()) || "registerNatives".equals(method.getName())) {
|
||||
final PsiClass containingClass = method.getContainingClass();
|
||||
if (containingClass != null && CommonClassNames.JAVA_LANG_OBJECT.equals(containingClass.getQualifiedName())) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
public class Bar {
|
||||
|
||||
{
|
||||
fina<caret>x
|
||||
}
|
||||
|
||||
}
|
||||
+4
-1
@@ -138,7 +138,6 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase {
|
||||
assertEquals(1, ((PsiMethod)myItems[1].getObject()).getParameterList().getParametersCount());
|
||||
assertEquals(2, ((PsiMethod)myItems[2].getObject()).getParameterList().getParametersCount());
|
||||
}
|
||||
|
||||
public void testStatsForClassNameInExpression() throws Throwable {
|
||||
final VirtualFile foo = getSourceRoot().createChildDirectory(this, "foo");
|
||||
VfsUtil.saveText(foo.createChildData(this, "FooBar.java"), "package foo; public interface FooBar {}");
|
||||
@@ -149,4 +148,8 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase {
|
||||
assertPreferredItems(0, "FooBee", "FooBar");
|
||||
}
|
||||
|
||||
public void testDispreferFinalize() throws Throwable {
|
||||
checkPreferredItems(0, "final", "finalize");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -781,7 +781,7 @@
|
||||
order="before openedInEditor"/>
|
||||
<weigher key="proximity" implementationClass="com.intellij.psi.util.proximity.JavaInheritanceWeigher" id="javaInheritance"
|
||||
order="after explicitlyImported, before sameLogicalRoot"/>
|
||||
<weigher key="proximity" implementationClass="com.intellij.psi.util.proximity.KnownPackageWeigher" id="knownPackage"
|
||||
<weigher key="proximity" implementationClass="com.intellij.psi.util.proximity.KnownElementWeigher" id="knownElement"
|
||||
order="after sameModule, before sdkOrLibrary"/>
|
||||
|
||||
<statistician key="proximity" implementationClass="com.intellij.codeInsight.completion.JavaProximityStatistician"/>
|
||||
|
||||
Reference in New Issue
Block a user