Merge branch 'master' into upsource-master

This commit is contained in:
Evgeny Pasynkov
2012-06-27 09:32:50 +02:00
19 changed files with 81 additions and 110 deletions
@@ -20,7 +20,6 @@ import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.template.Template;
import com.intellij.codeInsight.template.TemplateEditingAdapter;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
@@ -29,14 +28,10 @@ import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
/**
* @author Mike
*/
public class CreateFieldFromUsageFix extends CreateVarFromUsageFix {
public static boolean DEBUG = false;
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.CreateFieldFromUsageFix");
public CreateFieldFromUsageFix(PsiReferenceExpression referenceElement) {
super(referenceElement);
@@ -74,10 +69,6 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix {
final PsiFile targetFile = targetClass.getContainingFile();
ExpectedTypeInfo[] expectedTypes = CreateFromUsageUtils.guessExpectedTypes(myReferenceExpression, false);
if (DEBUG) {
System.out.println("CreateFieldFromUsageFix.invokeImpl");
System.out.println("expectedTypes = " + Arrays.toString(expectedTypes));
}
String fieldName = myReferenceExpression.getReferenceName();
assert fieldName != null;
@@ -774,34 +774,16 @@ public class CreateFromUsageUtils {
public int compare(final PsiMember m1, final PsiMember m2) {
ProgressManager.checkCanceled();
int result = JavaStatisticsManager.createInfo(null, m2).getUseCount() - JavaStatisticsManager.createInfo(null, m1).getUseCount();
if (CreateFieldFromUsageFix.DEBUG) {
System.out.println("CreateFromUsageUtils.compare");
System.out.println("m1 = " + m1);
System.out.println("m2 = " + m2);
System.out.println("result = " + result);
}
if (result != 0) return result;
final PsiClass aClass = m1.getContainingClass();
final PsiClass bClass = m2.getContainingClass();
if (aClass == null || bClass == null) return 0;
if (CreateFieldFromUsageFix.DEBUG) {
System.out.println("aClass = " + aClass);
System.out.println("bClass = " + bClass);
}
result = JavaStatisticsManager.createInfo(null, bClass).getUseCount() - JavaStatisticsManager.createInfo(null, aClass).getUseCount();
if (CreateFieldFromUsageFix.DEBUG) {
System.out.println("result2 = " + result);
}
if (result != 0) return result;
WeighingComparable<PsiElement,ProximityLocation> proximity1 = PsiProximityComparator.getProximity(m1, expression);
WeighingComparable<PsiElement,ProximityLocation> proximity2 = PsiProximityComparator.getProximity(m2, expression);
if (proximity1 != null && proximity2 != null) {
if (CreateFieldFromUsageFix.DEBUG) {
System.out.println("proximity1 = " + proximity1);
System.out.println("proximity2 = " + proximity2);
}
return proximity2.compareTo(proximity1);
}
@@ -816,11 +798,6 @@ public class CreateFromUsageUtils {
ProgressManager.checkCanceled();
PsiClass aClass = member.getContainingClass();
if (aClass instanceof PsiAnonymousClass || aClass == null) continue;
if (CreateFieldFromUsageFix.DEBUG) {
System.out.println("CreateFromUsageUtils.addMemberInfo");
System.out.println("member = " + member);
System.out.println("aClass = " + aClass);
}
if (facade.getResolveHelper().isAccessible(member, expression, null)) {
PsiClassType type;
@@ -59,7 +59,7 @@ public class DfaVariableState implements Cloneable {
}
List<PsiExpression> initializers = NullableStuffInspection.findAllConstructorInitializers((PsiField)var);
if (!nullable && initializers.isEmpty()) {
if (initializers.isEmpty()) {
return false;
}
@@ -78,7 +78,7 @@ public class DfaVariableState implements Cloneable {
return false;
}
}
return true;
return !nullable;
}
protected DfaVariableState(final DfaVariableState toClone) {
@@ -49,10 +49,10 @@ import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import static com.intellij.util.containers.ContainerUtil.addIfNotNull;
import static com.intellij.util.containers.ContainerUtilRt.createEmptyCOWList;
public class NullableStuffInspection extends BaseLocalInspectionTool {
// deprecated fields remain to minimize changes to users inspection profiles (which are often located in version control).
@@ -485,7 +485,7 @@ public class NullableStuffInspection extends BaseLocalInspectionTool {
}
public static List<PsiExpression> findAllConstructorInitializers(PsiField field) {
final List<PsiExpression> result = new ArrayList<PsiExpression>();
final List<PsiExpression> result = createEmptyCOWList();
addIfNotNull(result, field.getInitializer());
PsiClass containingClass = field.getContainingClass();
@@ -1,15 +1,24 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.lang.Object;
public class Doo {
private final Object myA;
private final Object myB;
private final Object myC;
public Doo(@Nullable Object myA, @NotNull Object myB) {
public Doo(@Nullable Object myA, @NotNull Object myB, Object c) {
this.myA = myA;
this.myB = myB;
myC = c;
}
int bar() {
return myC.hashCode();
}
int foo() {
if (<warning descr="Condition 'myB != null' is always 'true'">myB != null</warning> &&
<warning descr="Method invocation 'myA.equals(myB)' may produce 'java.lang.NullPointerException'">myA.equals(myB)</warning>) {
@@ -10,6 +10,8 @@ import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupManager;
import com.intellij.codeInsight.lookup.impl.LookupImpl;
import com.intellij.ide.ui.UISettings;
import com.intellij.psi.statistics.StatisticsManager;
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.annotations.NonNls;
@@ -25,6 +27,12 @@ public abstract class CompletionSortingTestCase extends LightFixtureCompletionTe
myType = type;
}
@Override
protected void setUp() throws Exception {
super.setUp();
((StatisticsManagerImpl)StatisticsManager.getInstance()).enableStatistics(getTestRootDisposable());
}
@Override
protected void tearDown() throws Exception {
LookupManager.getInstance(getProject()).hideActiveLookup();
@@ -10,8 +10,6 @@ import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.psi.statistics.StatisticsManager;
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
import com.intellij.testFramework.LightCodeInsightTestCase;
import com.intellij.testFramework.TestDataPath;
@@ -26,12 +24,6 @@ import com.intellij.testFramework.TestDataPath;
public class CompletionStyleTest extends LightCodeInsightTestCase{
private static final String BASE_PATH = "/codeInsight/completion/style";
@Override
protected void setUp() throws Exception {
super.setUp();
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
}
@Override
protected LanguageLevel getLanguageLevel() {
return LanguageLevel.JDK_1_6;
@@ -5,8 +5,6 @@ import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupManager;
import com.intellij.codeInsight.lookup.impl.LookupImpl;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.psi.statistics.StatisticsManager;
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
@@ -17,12 +15,6 @@ import org.jetbrains.annotations.NotNull;
public abstract class LightFixtureCompletionTestCase extends LightCodeInsightFixtureTestCase {
protected LookupElement[] myItems;
@Override
protected void setUp() throws Exception {
super.setUp();
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
}
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {
@@ -1,6 +1,5 @@
package com.intellij.codeInsight.daemon.quickFix;
import com.intellij.codeInsight.daemon.impl.quickfix.CreateFieldFromUsageFix;
import com.intellij.openapi.application.Result;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.vfs.VfsUtil;
@@ -23,14 +22,7 @@ public class CreateFieldFromUsageTest extends LightQuickFixTestCase{
public void testCreateFromEquals() throws Exception { doSingleTest(); }
public void testCreateFromEqualsToPrimitiveType() throws Exception { doSingleTest(); }
@Override
protected void tearDown() throws Exception {
CreateFieldFromUsageFix.DEBUG = false;
super.tearDown();
}
public void testSortByRelevance() throws Exception {
CreateFieldFromUsageFix.DEBUG = true;
new WriteCommandAction(getProject()) {
@Override
protected void run(Result result) throws Exception {
@@ -19,8 +19,6 @@ import com.intellij.codeInsight.daemon.DaemonAnalyzerTestCase;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupManager;
import com.intellij.codeInsight.lookup.impl.LookupImpl;
import com.intellij.psi.statistics.StatisticsManager;
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
import com.intellij.testFramework.PlatformTestCase;
import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
@@ -38,12 +36,6 @@ public abstract class CompletionTestCase extends DaemonAnalyzerTestCase {
protected LookupElement[] myItems;
private CompletionType myType = CompletionType.BASIC;
@Override
protected void setUp() throws Exception {
super.setUp();
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
}
@Override
protected void tearDown() throws Exception {
try {
@@ -19,8 +19,6 @@ import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupManager;
import com.intellij.codeInsight.lookup.impl.LookupImpl;
import com.intellij.testFramework.LightCodeInsightTestCase;
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
import com.intellij.psi.statistics.StatisticsManager;
import com.intellij.util.containers.HashSet;
import org.jetbrains.annotations.NonNls;
@@ -37,12 +35,6 @@ public abstract class LightCompletionTestCase extends LightCodeInsightTestCase {
protected LookupElement[] myItems;
private CompletionType myType = CompletionType.BASIC;
@Override
protected void setUp() throws Exception {
super.setUp();
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
}
@Override
protected void tearDown() throws Exception {
LookupManager.getInstance(getProject()).hideActiveLookup();