mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge branch 'master' of git.labs.intellij.net:idea/community
This commit is contained in:
@@ -63,7 +63,7 @@ public class RunConfigurationAction extends ComboBoxAction implements DumbAware
|
||||
}
|
||||
|
||||
try {
|
||||
if (project == null || project.isDisposed()) {
|
||||
if (project == null || project.isDisposed() || !project.isInitialized()) {
|
||||
//if (ProjectManager.getInstance().getOpenProjects().length > 0) {
|
||||
// // do nothing if frame is not active
|
||||
// return;
|
||||
|
||||
+14
-7
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2007 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -15,34 +15,36 @@
|
||||
*/
|
||||
package com.siyeh.ig.j2me;
|
||||
|
||||
import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel;
|
||||
import com.intellij.psi.*;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.performance.VariableAccessVisitor;
|
||||
import com.siyeh.ig.psiutils.ExpressionUtils;
|
||||
import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.JComponent;
|
||||
import java.util.Set;
|
||||
|
||||
public class FieldRepeatedlyAccessedInspection extends BaseInspection {
|
||||
|
||||
|
||||
/** @noinspection PublicField*/
|
||||
public boolean m_ignoreFinalFields = false;
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getID(){
|
||||
return "FieldRepeatedlyAccessedInMethod";
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getDisplayName() {
|
||||
return InspectionGadgetsBundle.message(
|
||||
"field.repeatedly.accessed.in.method.display.name");
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String buildErrorString(Object... arg) {
|
||||
final String fieldName = ((PsiNamedElement) arg[0]).getName();
|
||||
@@ -51,12 +53,14 @@ public class FieldRepeatedlyAccessedInspection extends BaseInspection {
|
||||
fieldName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JComponent createOptionsPanel() {
|
||||
return new SingleCheckboxOptionsPanel(InspectionGadgetsBundle.message(
|
||||
"field.repeatedly.accessed.in.method.ignore.option"),
|
||||
this, "m_ignoreFinalFields");
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseInspectionVisitor buildVisitor() {
|
||||
return new FieldRepeatedlyAccessedVisitor();
|
||||
}
|
||||
@@ -72,8 +76,11 @@ public class FieldRepeatedlyAccessedInspection extends BaseInspection {
|
||||
method.accept(visitor);
|
||||
final Set<PsiField> fields = visitor.getOveraccessedFields();
|
||||
for(PsiField field : fields){
|
||||
if(ExpressionUtils.isConstant(field) || m_ignoreFinalFields &&
|
||||
field.hasModifierProperty(PsiModifier.FINAL)){
|
||||
if(ExpressionUtils.isConstant(field)){
|
||||
continue;
|
||||
}
|
||||
if(m_ignoreFinalFields &&
|
||||
field.hasModifierProperty(PsiModifier.FINAL)){
|
||||
continue;
|
||||
}
|
||||
registerError(nameIdentifier, field);
|
||||
|
||||
+6
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2005 Dave Griffith
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.siyeh.ig.performance;
|
||||
package com.siyeh.ig.j2me;
|
||||
|
||||
import com.intellij.psi.*;
|
||||
import com.siyeh.ig.psiutils.ControlFlowUtils;
|
||||
@@ -21,17 +21,17 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class VariableAccessVisitor extends JavaRecursiveElementVisitor {
|
||||
class VariableAccessVisitor extends JavaRecursiveElementVisitor {
|
||||
|
||||
private final Map<PsiField,Integer> m_accessCounts =
|
||||
new HashMap<PsiField, Integer>(2);
|
||||
private final Set<PsiField> m_overAccessedFields =
|
||||
new HashSet<PsiField>(2);
|
||||
|
||||
@Override public void visitReferenceExpression(@NotNull PsiReferenceExpression ref) {
|
||||
@Override public void visitReferenceExpression(
|
||||
@NotNull PsiReferenceExpression ref) {
|
||||
super.visitReferenceExpression(ref);
|
||||
final PsiExpression qualifier = ref.getQualifierExpression();
|
||||
|
||||
if (qualifier != null && !(qualifier instanceof PsiThisExpression)) {
|
||||
return;
|
||||
}
|
||||
@@ -51,7 +51,7 @@ public class VariableAccessVisitor extends JavaRecursiveElementVisitor {
|
||||
final Integer count = accessCounts.get(field);
|
||||
if (count == null) {
|
||||
accessCounts.put(field, 1);
|
||||
} else if (count == 1) {
|
||||
} else if (count.intValue() == 1) {
|
||||
accessCounts.put(field, 2);
|
||||
} else {
|
||||
overAccessedFields.add(field);
|
||||
+24
-12
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2005 Dave Griffith
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,7 +18,8 @@ package com.siyeh.ig.psiutils;
|
||||
import com.intellij.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ArrayContentsAccessedVisitor extends JavaRecursiveElementVisitor{
|
||||
class ArrayContentsAccessedVisitor extends JavaRecursiveElementVisitor{
|
||||
|
||||
private boolean accessed = false;
|
||||
private final PsiVariable variable;
|
||||
|
||||
@@ -27,7 +28,8 @@ public class ArrayContentsAccessedVisitor extends JavaRecursiveElementVisitor{
|
||||
this.variable = variable;
|
||||
}
|
||||
|
||||
@Override public void visitForeachStatement(@NotNull PsiForeachStatement statement){
|
||||
@Override public void visitForeachStatement(
|
||||
@NotNull PsiForeachStatement statement){
|
||||
if(accessed){
|
||||
return;
|
||||
}
|
||||
@@ -36,7 +38,9 @@ public class ArrayContentsAccessedVisitor extends JavaRecursiveElementVisitor{
|
||||
if(!(qualifier instanceof PsiReferenceExpression)){
|
||||
return;
|
||||
}
|
||||
final PsiElement referent = ((PsiReference) qualifier).resolve();
|
||||
final PsiReferenceExpression referenceExpression =
|
||||
(PsiReferenceExpression)qualifier;
|
||||
final PsiElement referent = referenceExpression.resolve();
|
||||
if(referent == null){
|
||||
return;
|
||||
}
|
||||
@@ -46,21 +50,29 @@ public class ArrayContentsAccessedVisitor extends JavaRecursiveElementVisitor{
|
||||
accessed = true;
|
||||
}
|
||||
|
||||
@Override public void visitArrayAccessExpression(PsiArrayAccessExpression arg){
|
||||
@Override public void visitArrayAccessExpression(
|
||||
PsiArrayAccessExpression arrayAccessExpression){
|
||||
if(accessed){
|
||||
return;
|
||||
}
|
||||
super.visitArrayAccessExpression(arg);
|
||||
if(arg.getParent() instanceof PsiAssignmentExpression &&
|
||||
((PsiAssignmentExpression) arg.getParent()).getLExpression()
|
||||
.equals(arg)){
|
||||
return;
|
||||
super.visitArrayAccessExpression(arrayAccessExpression);
|
||||
final PsiElement parent = arrayAccessExpression.getParent();
|
||||
if(parent instanceof PsiAssignmentExpression) {
|
||||
final PsiAssignmentExpression assignmentExpression =
|
||||
(PsiAssignmentExpression)parent;
|
||||
final PsiExpression lhs = assignmentExpression.getLExpression();
|
||||
if(lhs.equals(arrayAccessExpression)){
|
||||
return;
|
||||
}
|
||||
}
|
||||
final PsiExpression arrayExpression = arg.getArrayExpression();
|
||||
final PsiExpression arrayExpression =
|
||||
arrayAccessExpression.getArrayExpression();
|
||||
if(!(arrayExpression instanceof PsiReferenceExpression)){
|
||||
return;
|
||||
}
|
||||
final PsiElement referent = ((PsiReference) arrayExpression).resolve();
|
||||
final PsiReferenceExpression referenceExpression =
|
||||
(PsiReferenceExpression)arrayExpression;
|
||||
final PsiElement referent = referenceExpression.resolve();
|
||||
if(referent == null){
|
||||
return;
|
||||
}
|
||||
|
||||
+11
-5
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2009 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,7 +20,7 @@ import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class ArrayContentsAssignedVisitor extends JavaRecursiveElementVisitor {
|
||||
class ArrayContentsAssignedVisitor extends JavaRecursiveElementVisitor {
|
||||
|
||||
private boolean assigned = false;
|
||||
private final PsiVariable variable;
|
||||
@@ -40,7 +40,9 @@ public class ArrayContentsAssignedVisitor extends JavaRecursiveElementVisitor {
|
||||
if(!(arrayExpression instanceof PsiReferenceExpression)){
|
||||
return;
|
||||
}
|
||||
final PsiElement referent = ((PsiReference) arrayExpression).resolve();
|
||||
final PsiReferenceExpression referenceExpression =
|
||||
(PsiReferenceExpression)arrayExpression;
|
||||
final PsiElement referent = referenceExpression.resolve();
|
||||
if(referent == null){
|
||||
return;
|
||||
}
|
||||
@@ -66,7 +68,9 @@ public class ArrayContentsAssignedVisitor extends JavaRecursiveElementVisitor {
|
||||
if(!(arrayExpression instanceof PsiReferenceExpression)){
|
||||
return;
|
||||
}
|
||||
final PsiElement referent = ((PsiReference) arrayExpression).resolve();
|
||||
final PsiReferenceExpression referenceExpression =
|
||||
(PsiReferenceExpression)arrayExpression;
|
||||
final PsiElement referent = referenceExpression.resolve();
|
||||
if(referent == null){
|
||||
return;
|
||||
}
|
||||
@@ -91,7 +95,9 @@ public class ArrayContentsAssignedVisitor extends JavaRecursiveElementVisitor {
|
||||
if(!(arrayExpression instanceof PsiReferenceExpression)){
|
||||
return;
|
||||
}
|
||||
final PsiElement referent = ((PsiReference) arrayExpression).resolve();
|
||||
final PsiReferenceExpression referenceExpression =
|
||||
(PsiReferenceExpression)arrayExpression;
|
||||
final PsiElement referent = referenceExpression.resolve();
|
||||
if(referent == null){
|
||||
return;
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2006 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,7 +18,7 @@ package com.siyeh.ig.psiutils;
|
||||
import com.intellij.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class VariableAssignedFromVisitor extends JavaRecursiveElementVisitor{
|
||||
class VariableAssignedFromVisitor extends JavaRecursiveElementVisitor{
|
||||
|
||||
private boolean assignedFrom = false;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2009 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,7 +20,7 @@ import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class VariableAssignedVisitor extends JavaRecursiveElementVisitor{
|
||||
class VariableAssignedVisitor extends JavaRecursiveElementVisitor{
|
||||
|
||||
@NotNull private final PsiVariable variable;
|
||||
private final boolean recurseIntoClasses;
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2009 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class VariablePassedAsArgumentExcludedVisitor
|
||||
class VariablePassedAsArgumentExcludedVisitor
|
||||
extends JavaRecursiveElementVisitor{
|
||||
|
||||
@NotNull
|
||||
|
||||
+2
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2009 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,8 +18,7 @@ package com.siyeh.ig.psiutils;
|
||||
import com.intellij.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class VariablePassedAsArgumentVisitor
|
||||
extends JavaRecursiveElementVisitor{
|
||||
class VariablePassedAsArgumentVisitor extends JavaRecursiveElementVisitor{
|
||||
|
||||
@NotNull
|
||||
private final PsiVariable variable;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2005 Dave Griffith
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -21,7 +21,7 @@ import com.intellij.psi.PsiReturnStatement;
|
||||
import com.intellij.psi.PsiVariable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class VariableReturnedVisitor extends JavaRecursiveElementVisitor {
|
||||
class VariableReturnedVisitor extends JavaRecursiveElementVisitor {
|
||||
|
||||
private boolean returned = false;
|
||||
@NotNull private final PsiVariable variable;
|
||||
|
||||
+5
-8
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2005 Dave Griffith
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,8 +18,7 @@ package com.siyeh.ig.psiutils;
|
||||
import com.intellij.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class VariableUsedInArrayInitializerVisitor
|
||||
extends JavaRecursiveElementVisitor{
|
||||
class VariableUsedInArrayInitializerVisitor extends JavaRecursiveElementVisitor{
|
||||
|
||||
@NotNull
|
||||
private final PsiVariable variable;
|
||||
@@ -42,11 +41,9 @@ public class VariableUsedInArrayInitializerVisitor
|
||||
return;
|
||||
}
|
||||
super.visitArrayInitializerExpression(expression);
|
||||
|
||||
final PsiExpression[] args = expression.getInitializers();
|
||||
for(final PsiExpression arg : args){
|
||||
|
||||
if(VariableAccessUtils.mayEvaluateToVariable(arg, variable)){
|
||||
final PsiExpression[] initializers = expression.getInitializers();
|
||||
for(final PsiExpression initializer : initializers){
|
||||
if(VariableAccessUtils.mayEvaluateToVariable(initializer, variable)){
|
||||
passed = true;
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2005 Dave Griffith
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,7 +18,7 @@ package com.siyeh.ig.psiutils;
|
||||
import com.intellij.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class VariableUsedInInnerClassVisitor extends JavaRecursiveElementVisitor{
|
||||
class VariableUsedInInnerClassVisitor extends JavaRecursiveElementVisitor{
|
||||
|
||||
@NotNull private final PsiVariable variable;
|
||||
private boolean usedInInnerClass = false;
|
||||
@@ -45,17 +45,17 @@ public class VariableUsedInInnerClassVisitor extends JavaRecursiveElementVisitor
|
||||
inInnerClass = wasInInnerClass;
|
||||
}
|
||||
|
||||
@Override public void visitReferenceExpression(@NotNull PsiReferenceExpression ref){
|
||||
@Override public void visitReferenceExpression(
|
||||
@NotNull PsiReferenceExpression referenceExpression){
|
||||
if(usedInInnerClass){
|
||||
return;
|
||||
}
|
||||
super.visitReferenceExpression(ref);
|
||||
|
||||
super.visitReferenceExpression(referenceExpression);
|
||||
if(!inInnerClass){
|
||||
return;
|
||||
}
|
||||
final PsiElement element = ref.resolve();
|
||||
if(variable.equals(element)){
|
||||
final PsiElement target = referenceExpression.resolve();
|
||||
if(variable.equals(target)){
|
||||
usedInInnerClass = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2008 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -21,7 +21,7 @@ import com.intellij.psi.PsiReferenceExpression;
|
||||
import com.intellij.psi.PsiVariable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class VariableUsedVisitor extends JavaRecursiveElementVisitor {
|
||||
class VariableUsedVisitor extends JavaRecursiveElementVisitor {
|
||||
|
||||
private boolean used = false;
|
||||
@NotNull private final PsiVariable variable;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2008 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2008-2010 Dave Griffith, Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -19,7 +19,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class VariableValueUsedVisitor extends JavaRecursiveElementVisitor {
|
||||
class VariableValueUsedVisitor extends JavaRecursiveElementVisitor {
|
||||
|
||||
@NotNull
|
||||
private final PsiVariable variable;
|
||||
|
||||
Reference in New Issue
Block a user