> places = registrar.result;
// check that injections found intersect with queried element
@@ -224,14 +242,21 @@ public class InjectedLanguageUtil {
Place place = pair.first;
for (PsiLanguageInjectionHost.Shred shred : place) {
if (shred.host.getTextRange().intersects(elementRange)) {
- if (place.isValid()) return registrar;
+ if (place.isValid()) break nextParent;
}
}
}
}
if (!probeUp) break;
}
- return null;
+ if (registrar == null) {
+ for (PsiElement e = element; e != current && e != null && e != hostPsiFile; e = e.getParent()) {
+ ProgressManager.checkCanceled();
+ //store no-injection flag
+ e.putUserData(INJECTED_PSI_KEY, NULL_VALUE);
+ }
+ }
+ return registrar;
}
@Nullable
@@ -324,10 +349,10 @@ public class InjectedLanguageUtil {
}
public static void clearCaches(@NotNull PsiFile injected, @NotNull DocumentWindowImpl documentWindow) {
- VirtualFileWindow virtualFile = (VirtualFileWindow)injected.getVirtualFile();
+ VirtualFileWindowImpl virtualFile = (VirtualFileWindowImpl)injected.getVirtualFile();
PsiManagerEx psiManagerEx = (PsiManagerEx)injected.getManager();
if (psiManagerEx.getProject().isDisposed()) return;
- psiManagerEx.getFileManager().setViewProvider((VirtualFile)virtualFile, null);
+ psiManagerEx.getFileManager().setViewProvider(virtualFile, null);
PsiElement context = injected.getContext();
PsiFile hostFile;
if (context != null) {
@@ -349,6 +374,8 @@ public class InjectedLanguageUtil {
}
}
}
+ //FileDocumentManagerImpl.registerDocument(null, virtualFile);
+ //FileDocumentManagerImpl.registerDocument(documentWindow, null);
}
diff --git a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureDialogBase.java b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureDialogBase.java
index 67715d67aecb..247d382bbe3a 100644
--- a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureDialogBase.java
+++ b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureDialogBase.java
@@ -379,7 +379,7 @@ public abstract class ChangeSignatureDialogBase, Exporta
UISettings uiSettings=getInstance();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
- if(uiSettings.ANTIALIASING_IN_EDITOR) {
+ if (uiSettings == null || uiSettings.ANTIALIASING_IN_EDITOR) {
Toolkit tk = Toolkit.getDefaultToolkit();
//noinspection HardCodedStringLiteral
Map map = (Map)tk.getDesktopProperty("awt.font.desktophints");
diff --git a/platform/platform-api/src/com/intellij/ui/AddDeleteListPanel.java b/platform/platform-api/src/com/intellij/ui/AddDeleteListPanel.java
index 9147bb660867..fa2df6939de7 100644
--- a/platform/platform-api/src/com/intellij/ui/AddDeleteListPanel.java
+++ b/platform/platform-api/src/com/intellij/ui/AddDeleteListPanel.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2011 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,28 +23,33 @@ import com.intellij.util.ui.StatusText;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
+import java.awt.*;
import java.util.ArrayList;
import java.util.List;
/**
* Panel with "Add" and "Delete" buttons on the right side.
*
+ * @author Konstantin Bulenkov
* @author anna
* @since 5.1
*/
public abstract class AddDeleteListPanel extends PanelWithButtons implements ComponentWithEmptyText {
private final String myTitle;
+
+ /**
+ * @deprecated
+ */
protected JButton myAddButton = new JButton(CommonBundle.message("button.add"));
+ /**
+ * @deprecated
+ */
protected JButton myDeleteButton = new JButton(CommonBundle.message("button.delete"));
+
protected DefaultListModel myListModel = new DefaultListModel();
protected JBList myList = new JBList(myListModel);
- public AddDeleteListPanel(final String title,
- final List initialList) {
+ public AddDeleteListPanel(final String title, final List initialList) {
myTitle = title;
for (Object o : initialList) {
if (o != null) {
@@ -52,24 +57,31 @@ public abstract class AddDeleteListPanel extends PanelWithButtons implements
}
}
myList.setCellRenderer(getListCellRenderer());
- myList.addListSelectionListener(new ListSelectionListener() {
- public void valueChanged(ListSelectionEvent e) {
- myDeleteButton.setEnabled(ListUtil.canRemoveSelectedItems(myList));
- }
- });
- myAddButton.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- addElement(findItemToAdd());
- }
- });
- myDeleteButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- ListUtil.removeSelectedItems(myList);
- }
- });
initPanel();
}
+ @Override
+ protected void initPanel() {
+ final ToolbarDecorator decorator = ToolbarDecorator.createDecorator(myList)
+ .disableUpAction()
+ .disableDownAction()
+ .setAddAction(new Runnable() {
+ @Override
+ public void run() {
+ addElement(findItemToAdd());
+ }
+ });
+ customizeDecorator(decorator);
+ setLayout(new BorderLayout());
+ add(decorator.createPanel(), BorderLayout.CENTER);
+ if (myTitle != null) {
+ setBorder(IdeBorderFactory.createTitledBorder(myTitle));
+ }
+ }
+
+ protected void customizeDecorator(ToolbarDecorator decorator) {
+ }
+
@Override
public StatusText getEmptyText() {
return myList.getEmptyText();
diff --git a/platform/platform-api/src/com/intellij/ui/AddEditDeleteListPanel.java b/platform/platform-api/src/com/intellij/ui/AddEditDeleteListPanel.java
index a7500f5c91ec..150517f7b015 100644
--- a/platform/platform-api/src/com/intellij/ui/AddEditDeleteListPanel.java
+++ b/platform/platform-api/src/com/intellij/ui/AddEditDeleteListPanel.java
@@ -1,28 +1,36 @@
+/*
+ * Copyright 2000-2011 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.intellij.ui;
import com.intellij.CommonBundle;
+import com.intellij.openapi.actionSystem.AnActionEvent;
+import com.intellij.util.IconUtil;
import org.jetbrains.annotations.Nullable;
-import javax.swing.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
/**
* @author peter
+ * @author Konstantin Bulenkov
*/
public abstract class AddEditDeleteListPanel extends AddDeleteListPanel {
- private JButton myEditButton;
-
public AddEditDeleteListPanel(final String title, final List initialList) {
super(title, initialList);
- myEditButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- editSelectedItem();
- }
- });
myList.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) {
@@ -32,9 +40,19 @@ public abstract class AddEditDeleteListPanel extends AddDeleteListPanel {
});
}
- @Override protected JButton[] createButtons() {
- myEditButton = new JButton(CommonBundle.message("button.edit"));
- return new JButton[] { myAddButton, myEditButton, myDeleteButton };
+ @Override
+ protected void customizeDecorator(ToolbarDecorator decorator) {
+ decorator.addExtraAction(new AnActionButton(CommonBundle.message("button.edit"), null, IconUtil.getEditIcon()) {
+ @Override
+ public void actionPerformed(AnActionEvent e) {
+ editSelectedItem();
+ }
+
+ @Override
+ public void update(AnActionEvent e) {
+ e.getPresentation().setEnabled(myList.getSelectedIndex() != -1);
+ }
+ });
}
@Nullable
diff --git a/platform/platform-api/src/com/intellij/ui/TableToolbarDecorator.java b/platform/platform-api/src/com/intellij/ui/ToolbarDecorator.java
similarity index 57%
rename from platform/platform-api/src/com/intellij/ui/TableToolbarDecorator.java
rename to platform/platform-api/src/com/intellij/ui/ToolbarDecorator.java
index 80412d548bd3..b2880494e419 100644
--- a/platform/platform-api/src/com/intellij/ui/TableToolbarDecorator.java
+++ b/platform/platform-api/src/com/intellij/ui/ToolbarDecorator.java
@@ -34,9 +34,10 @@ import java.util.List;
* @author Konstantin Bulenkov
*/
@SuppressWarnings("UnusedDeclaration")
-public class TableToolbarDecorator {
+public class ToolbarDecorator {
private JTable myTable;
- private TableModel myModel;
+ private TableModel myTableModel;
+ private ListModel myListModel;
private Border myToolbarBorder;
private boolean myAddActionEnabled;
private boolean myRemoveActionEnabled;
@@ -50,29 +51,66 @@ public class TableToolbarDecorator {
private Runnable myUpAction;
private Runnable myDownAction;
private AddRemoveUpDownPanel myPanel;
+ private JList myList;
- private TableToolbarDecorator(JTable table) {
+ private ToolbarDecorator(JTable table) {
myTable = table;
myTable.setBorder(IdeBorderFactory.createEmptyBorder(0));
- myModel = table.getModel();
- myToolbarPosition = SystemInfo.isMac ? ActionToolbarPosition.BOTTOM : ActionToolbarPosition.RIGHT;
- myBorder = SystemInfo.isMac ? new CustomLineBorder(0,1,1,1) : new CustomLineBorder(0, 1, 0, 0);
- myAddActionEnabled = myRemoveActionEnabled = myUpActionEnabled = myDownActionEnabled = myModel instanceof EditableModel;
- if (myModel instanceof EditableModel) {
- createDefaultActions();
+ myTableModel = table.getModel();
+ initPositionAndBorder();
+ myAddActionEnabled = myRemoveActionEnabled = myUpActionEnabled = myDownActionEnabled = myTableModel instanceof EditableModel;
+ if (myTableModel instanceof EditableModel) {
+ createDefaultTableActions();
}
}
- private void createDefaultActions() {
+ private ToolbarDecorator(JList list) {
+ myList = list;
+ myListModel = list.getModel();
+ myAddActionEnabled = myRemoveActionEnabled = myUpActionEnabled = myDownActionEnabled = true;
+ initPositionAndBorder();
+ createDefaultListActions();
+ }
+
+ private void createDefaultListActions() {
+ myRemoveAction = new Runnable() {
+ @Override
+ public void run() {
+ ListUtil.removeSelectedItems(myList);
+ updateListButtons(myList, myPanel);
+ }
+ };
+ myUpAction = new Runnable() {
+ @Override
+ public void run() {
+ ListUtil.moveSelectedItemsUp(myList);
+ updateListButtons(myList, myPanel);
+ }
+ };
+ myDownAction = new Runnable() {
+ @Override
+ public void run() {
+ ListUtil.moveSelectedItemsDown(myList);
+ updateListButtons(myList, myPanel);
+ }
+ };
+ }
+
+ private void initPositionAndBorder() {
+ myToolbarPosition = SystemInfo.isMac ? ActionToolbarPosition.BOTTOM : ActionToolbarPosition.RIGHT;
+ myBorder = SystemInfo.isMac ? new CustomLineBorder(0,1,1,1) : new CustomLineBorder(0, 1, 0, 0);
+ }
+
+ private void createDefaultTableActions() {
final JTable table = myTable;
- final EditableModel tableModel = (EditableModel)myModel;
+ final EditableModel tableModel = (EditableModel)myTableModel;
myAddAction = new Runnable() {
public void run() {
TableUtil.stopEditing(table);
tableModel.addRow();
- final int index = myModel.getRowCount() - 1;
+ final int index = myTableModel.getRowCount() - 1;
table.editCellAt(index, 0);
table.setRowSelectionInterval(index, index);
table.setColumnSelectionInterval(0, 0);
@@ -90,9 +128,9 @@ public class TableToolbarDecorator {
public void run() {
TableUtil.stopEditing(table);
int index = table.getSelectedRow();
- if (0 <= index && index < myModel.getRowCount()) {
+ if (0 <= index && index < myTableModel.getRowCount()) {
tableModel.removeRow(index);
- if (index < myModel.getRowCount()) {
+ if (index < myTableModel.getRowCount()) {
table.setRowSelectionInterval(index, index);
}
else {
@@ -100,7 +138,7 @@ public class TableToolbarDecorator {
table.setRowSelectionInterval(index - 1, index - 1);
}
}
- updateButtons(table, tableModel, myPanel);
+ updateTableButtons(table, tableModel, myPanel);
}
table.getParent().repaint();
@@ -112,7 +150,7 @@ public class TableToolbarDecorator {
public void run() {
TableUtil.stopEditing(table);
int index = table.getSelectedRow();
- if (0 < index && index < myModel.getRowCount()) {
+ if (0 < index && index < myTableModel.getRowCount()) {
tableModel.exchangeRows(index, index - 1);
table.setRowSelectionInterval(index - 1, index - 1);
}
@@ -124,7 +162,7 @@ public class TableToolbarDecorator {
public void run() {
TableUtil.stopEditing(table);
int index = table.getSelectedRow();
- if (0 <= index && index < myModel.getRowCount() - 1) {
+ if (0 <= index && index < myTableModel.getRowCount() - 1) {
tableModel.exchangeRows(index, index + 1);
table.setRowSelectionInterval(index + 1, index + 1);
}
@@ -133,92 +171,112 @@ public class TableToolbarDecorator {
};
}
- private static void updateButtons(final JTable table,
- final EditableModel tableModel,
- final AddRemoveUpDownPanel p) {
- if (table.isEnabled()) {
+ private static void updateListButtons(final JList list, final AddRemoveUpDownPanel p) {
+ if (list.isEnabled() && p != null) {
+ final int index = list.getSelectedIndex();
+ if (0 <= index && index < list.getModel().getSize()) {
+ final boolean downEnable = list.getMaxSelectionIndex() < list.getModel().getSize() - 1;
+ final boolean upEnable = list.getMinSelectionIndex() > 0;
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.REMOVE, true);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.UP, upEnable);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.DOWN, downEnable);
+ } else {
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.REMOVE, false);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.UP, false);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.DOWN, false);
+ }
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.ADD, true);
+ }
+ }
+
+ private static void updateTableButtons(final JTable table,
+ final EditableModel tableModel,
+ final AddRemoveUpDownPanel p) {
+ if (table.isEnabled() && p != null) {
final int index = table.getSelectedRow();
if (0 <= index && index < ((TableModel)tableModel).getRowCount()) {
final boolean downEnable = index < ((TableModel)tableModel).getRowCount() - 1;
final boolean upEnable = index > 0;
- if (p != null) {
- p.setEnabled(AddRemoveUpDownPanel.Buttons.REMOVE, true);
- p.setEnabled(AddRemoveUpDownPanel.Buttons.UP, upEnable);
- p.setEnabled(AddRemoveUpDownPanel.Buttons.DOWN, downEnable);
- }
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.REMOVE, true);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.UP, upEnable);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.DOWN, downEnable);
} else {
- if (p != null) {
- p.setEnabled(AddRemoveUpDownPanel.Buttons.REMOVE, false);
- p.setEnabled(AddRemoveUpDownPanel.Buttons.UP, false);
- p.setEnabled(AddRemoveUpDownPanel.Buttons.DOWN, false);
- }
- }
- if (p != null) {
- p.setEnabled(AddRemoveUpDownPanel.Buttons.ADD, true);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.REMOVE, false);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.UP, false);
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.DOWN, false);
}
+ p.setEnabled(AddRemoveUpDownPanel.Buttons.ADD, true);
}
}
- public static TableToolbarDecorator createDecorator(JTable table) {
- return new TableToolbarDecorator(table);
+ public static ToolbarDecorator createDecorator(JTable table) {
+ return new ToolbarDecorator(table);
}
- public TableToolbarDecorator disableAddAction() {
+ public static ToolbarDecorator createDecorator(JList list) {
+ return new ToolbarDecorator(list);
+ }
+
+ public ToolbarDecorator disableAddAction() {
myAddActionEnabled = false;
return this;
}
- public TableToolbarDecorator disableRemoveAction() {
+ public ToolbarDecorator disableRemoveAction() {
myRemoveActionEnabled = false;
return this;
}
- public TableToolbarDecorator disableUpAction() {
+ public ToolbarDecorator disableUpAction() {
myUpActionEnabled = false;
return this;
}
- public TableToolbarDecorator disableDownAction() {
+ public ToolbarDecorator disableDownAction() {
myDownActionEnabled = false;
return this;
}
- public TableToolbarDecorator setToolbarBorder(Border border) {
+ public ToolbarDecorator setToolbarBorder(Border border) {
myBorder = border;
return this;
}
- public TableToolbarDecorator setLineBorder(int top, int left, int bottom, int right) {
+ public ToolbarDecorator setLineBorder(int top, int left, int bottom, int right) {
return setToolbarBorder(new CustomLineBorder(top, left, bottom, right));
}
- public TableToolbarDecorator addExtraAction(AnActionButton action) {
+ public ToolbarDecorator addExtraAction(AnActionButton action) {
myExtraActions.add(action);
return this;
}
- public TableToolbarDecorator setToolbarPosition(ActionToolbarPosition position) {
+ public ToolbarDecorator setToolbarPosition(ActionToolbarPosition position) {
myToolbarPosition = position;
return this;
}
- public TableToolbarDecorator setAddAction(Runnable action) {
+ public ToolbarDecorator setAddAction(Runnable action) {
+ myAddActionEnabled = action != null;
myAddAction = action;
return this;
}
- public TableToolbarDecorator setRemoveAction(Runnable action) {
+ public ToolbarDecorator setRemoveAction(Runnable action) {
+ myRemoveActionEnabled = action != null;
myRemoveAction = action;
return this;
}
- public TableToolbarDecorator setUpAction(Runnable action) {
+ public ToolbarDecorator setUpAction(Runnable action) {
+ myUpActionEnabled = action != null;
myUpAction = action;
return this;
}
- public TableToolbarDecorator setDownAction(Runnable action) {
+ public ToolbarDecorator setDownAction(Runnable action) {
+ myDownActionEnabled = action != null;
myDownAction = action;
return this;
}
@@ -226,26 +284,46 @@ public class TableToolbarDecorator {
public JPanel createPanel() {
final AddRemoveUpDownPanel.Buttons[] buttons = getButtons();
myPanel = new AddRemoveUpDownPanel(createListener(),
- myTable,
+ myTable == null ? myList : myTable,
myToolbarPosition == ActionToolbarPosition.TOP || myToolbarPosition == ActionToolbarPosition.BOTTOM,
myExtraActions.toArray(new AnActionButton[myExtraActions.size()]),
buttons);
myPanel.setBorder(myBorder);
- final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(myTable);
+ final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(myTable == null ? myList : myTable);
scrollPane.setBorder(IdeBorderFactory.createEmptyBorder(0));
- final JPanel panel = new JPanel(new BorderLayout());
+ final JPanel panel = new JPanel(new BorderLayout()) {
+ @Override
+ public void addNotify() {
+ super.addNotify();
+ if (myList != null) {
+ updateListButtons(myList, myPanel);
+ }
+ if (myTable != null && myTableModel instanceof EditableModel) {
+ updateTableButtons(myTable, (EditableModel)myTableModel, myPanel);
+ }
+ }
+ };
panel.add(scrollPane, BorderLayout.CENTER);
panel.add(myPanel, getPlacement());
- if (myModel instanceof EditableModel && buttons.length > 0) {
- updateButtons(myTable, (EditableModel)myModel, myPanel);
+ if (myTableModel instanceof EditableModel && buttons.length > 0) {
+ updateTableButtons(myTable, (EditableModel)myTableModel, myPanel);
if (myUpAction != null && myUpActionEnabled && myDownAction != null && myDownActionEnabled) {
- TableRowsDnDSupport.install(myTable, (EditableModel)myModel);
+ TableRowsDnDSupport.install(myTable, (EditableModel)myTableModel);
}
myTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
- updateButtons(myTable, (EditableModel)myModel, myPanel);
+ updateTableButtons(myTable, (EditableModel)myTableModel, myPanel);
+ }
+ });
+ }
+ if (myList != null) {
+ updateListButtons(myList, myPanel);
+ myList.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+ @Override
+ public void valueChanged(ListSelectionEvent e) {
+ updateListButtons(myList, myPanel);
}
});
}
diff --git a/platform/platform-impl/src/com/intellij/help/impl/IdeaJHelpContentViewer.java b/platform/platform-impl/src/com/intellij/help/impl/IdeaJHelpContentViewer.java
index 01f7de295400..983211b814db 100644
--- a/platform/platform-impl/src/com/intellij/help/impl/IdeaJHelpContentViewer.java
+++ b/platform/platform-impl/src/com/intellij/help/impl/IdeaJHelpContentViewer.java
@@ -15,6 +15,7 @@
*/
package com.intellij.help.impl;
+import com.intellij.ide.ui.UISettings;
import com.intellij.util.ui.UIUtil;
import sun.swing.SwingUtilities2;
@@ -55,6 +56,7 @@ class IdeaJHelpContentViewer extends JHelpContentViewer{
if (editorPane != null) {
editorPane.putClientProperty(SwingUtilities2.AA_TEXT_PROPERTY_KEY, SwingUtilities2.AATextInfo.getAATextInfo(true));
}
+ UISettings.setupAntialiasing(g);
super.paint(g);
}
}
\ No newline at end of file
diff --git a/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java b/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java
index bdde15051217..69cb188f5026 100644
--- a/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java
+++ b/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java
@@ -110,7 +110,7 @@ public abstract class ParsingTestCase extends LightPlatformTestCase {
try {
text = text.trim();
String expectedText = doLoadFile(myFullDataPath, targetDataName);
- assertEquals(expectedText, text);
+ assertEquals(targetDataName, expectedText, text);
}
catch(FileNotFoundException e){
String fullName = myFullDataPath + File.separatorChar + targetDataName;
diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/history/VcsAppendableHistoryPartnerAdapter.java b/platform/vcs-api/src/com/intellij/openapi/vcs/history/VcsAppendableHistoryPartnerAdapter.java
new file mode 100644
index 000000000000..383adea20d0e
--- /dev/null
+++ b/platform/vcs-api/src/com/intellij/openapi/vcs/history/VcsAppendableHistoryPartnerAdapter.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2000-2011 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.intellij.openapi.vcs.history;
+
+import com.intellij.openapi.vcs.VcsException;
+
+/**
+ * @author irengrig
+ * Date: 7/13/11
+ * Time: 5:52 PM
+ */
+public class VcsAppendableHistoryPartnerAdapter implements VcsAppendableHistorySessionPartner {
+ private VcsAbstractHistorySession mySession;
+ private VcsException myException;
+
+ @Override
+ public void reportCreatedEmptySession(VcsAbstractHistorySession session) {
+ mySession = session;
+ }
+
+ @Override
+ public void acceptRevision(VcsFileRevision revision) {
+ mySession.appendRevision(revision);
+ }
+
+ @Override
+ public void reportException(VcsException exception) {
+ myException = exception;
+ }
+
+ @Override
+ public void finished() {
+ }
+
+ @Override
+ public void forceRefresh() {
+ }
+
+ public void check() throws VcsException {
+ if (myException != null) throw myException;
+ }
+
+ public VcsAbstractHistorySession getSession() {
+ return mySession;
+ }
+}
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java
index 5b4421f3c0e8..259d5ff2751e 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java
@@ -318,7 +318,7 @@ public class CommitChangeListDialog extends DialogWrapper implements CheckinProj
if (options != null) {
JPanel vcsOptions = new JPanel(new BorderLayout());
vcsOptions.add(options.getComponent(), BorderLayout.CENTER);
- vcsOptions.add(SeparatorFactory.createSeparator(vcs.getDisplayName(), null), BorderLayout.NORTH);
+ vcsOptions.setBorder(IdeBorderFactory.createTitledBorder(vcs.getDisplayName()));
vcsCommitOptions.add(vcsOptions);
myPerVcsOptionsPanels.put(vcs, vcsOptions);
myAdditionalComponents.add(options);
@@ -361,17 +361,21 @@ public class CommitChangeListDialog extends DialogWrapper implements CheckinProj
}
final String actionName = getCommitActionName();
- final String borderTitleName = actionName.replace("_", "");
+ final String borderTitleName = actionName.replace("_", "").replace("&", "");
if (beforeVisible) {
beforeBox.add(Box.createVerticalGlue());
- beforeBox.add(SeparatorFactory.createSeparator(VcsBundle.message("border.standard.checkin.options.group", borderTitleName), null), 0);
- optionsBox.add(beforeBox);
+ JPanel beforePanel = new JPanel(new BorderLayout());
+ beforePanel.add(beforeBox);
+ beforePanel.setBorder(IdeBorderFactory.createTitledBorder(VcsBundle.message("border.standard.checkin.options.group", borderTitleName)));
+ optionsBox.add(beforePanel);
}
if (afterVisible) {
afterBox.add(Box.createVerticalGlue());
- afterBox.add(SeparatorFactory.createSeparator(VcsBundle.message("border.standard.after.checkin.options.group", borderTitleName), null), 0);
- optionsBox.add(afterBox);
+ JPanel afterPanel = new JPanel(new BorderLayout());
+ afterPanel.add(afterBox);
+ afterPanel.setBorder(IdeBorderFactory.createTitledBorder(VcsBundle.message("border.standard.after.checkin.options.group", borderTitleName)));
+ optionsBox.add(afterPanel);
}
if (hasVcsOptions || beforeVisible || afterVisible) {
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitLegendPanel.form b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitLegendPanel.form
index ad82fc9fcc9d..6c38708008ea 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitLegendPanel.form
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitLegendPanel.form
@@ -1,204 +1,198 @@
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitLegendPanel.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitLegendPanel.java
index 1863a9588ecb..d7d11aac9b47 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitLegendPanel.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitLegendPanel.java
@@ -43,7 +43,6 @@ public class CommitLegendPanel {
private JLabel myNewLabel;
private JPanel myDeletedPanel;
private JLabel myDeletedLabel;
- private JPanel myHeadingPanel;
private final InfoCalculator myInfoCalculator;
@@ -85,10 +84,6 @@ public class CommitLegendPanel {
updateCategory(myDeletedShown, myDeletedIncluded, deleted, includedDeleted);
}
- private void createUIComponents() {
- myHeadingPanel = (JPanel)SeparatorFactory.createSeparator(VcsBundle.message("commit.legend.summary"), null);
- }
-
private static void updateCategory(JLabel totalLabel,
JLabel includedLabel,
int totalCnt,
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/ui/CommitMessage.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/ui/CommitMessage.java
index 7001d96c9e42..8695252d7473 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/ui/CommitMessage.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/ui/CommitMessage.java
@@ -62,7 +62,7 @@ public class CommitMessage extends JPanel implements Disposable {
JPanel labelPanel = new JPanel(new BorderLayout());
labelPanel.setBorder(BorderFactory.createEmptyBorder());
- JComponent separator = SeparatorFactory.createSeparator(VcsBundle.message("label.commit.comment"), myEditorField.getComponent());
+ JComponent separator = SeparatorFactory.createSeparatorWithBoldTitle(VcsBundle.message("label.commit.comment"), myEditorField.getComponent());
JPanel separatorPanel = new JPanel(new BorderLayout());
separatorPanel.add(separator, BorderLayout.SOUTH);
separatorPanel.add(Box.createVerticalGlue(), BorderLayout.NORTH);
diff --git a/plugins/InspectionGadgets/src/com/intellij/codeInspection/booleanIsAlwaysInverted/BooleanMethodIsAlwaysInvertedInspection.java b/plugins/InspectionGadgets/src/com/intellij/codeInspection/booleanIsAlwaysInverted/BooleanMethodIsAlwaysInvertedInspection.java
index 8ec2ac65c34b..9a7373af23fd 100644
--- a/plugins/InspectionGadgets/src/com/intellij/codeInspection/booleanIsAlwaysInverted/BooleanMethodIsAlwaysInvertedInspection.java
+++ b/plugins/InspectionGadgets/src/com/intellij/codeInspection/booleanIsAlwaysInverted/BooleanMethodIsAlwaysInvertedInspection.java
@@ -129,8 +129,7 @@ public class BooleanMethodIsAlwaysInvertedInspection extends GlobalJavaInspectio
final PsiPrefixExpression prefixExpression = PsiTreeUtil.getParentOfType(methodExpression, PsiPrefixExpression.class);
if (methodExpression.getQualifierExpression() instanceof PsiSuperExpression) return true; //don't flag super calls
if (prefixExpression != null) {
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (tokenType.equals(JavaTokenType.EXCL)) {
return true;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToCollectionFieldFromParameterInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToCollectionFieldFromParameterInspection.java
index ea20c88a7754..695c7bc47a74 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToCollectionFieldFromParameterInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToCollectionFieldFromParameterInspection.java
@@ -83,8 +83,7 @@ public class AssignmentToCollectionFieldFromParameterInspection
if(!(rhs instanceof PsiReferenceExpression)){
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.EQ)){
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToDateFieldFromParameterInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToDateFieldFromParameterInspection.java
index 3e216d306f32..7a58cb68b7b4 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToDateFieldFromParameterInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToDateFieldFromParameterInspection.java
@@ -71,8 +71,7 @@ public class AssignmentToDateFieldFromParameterInspection
@Override public void visitAssignmentExpression(
@NotNull PsiAssignmentExpression expression) {
super.visitAssignmentExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!JavaTokenType.EQ.equals(tokenType)) {
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToForLoopParameterInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToForLoopParameterInspection.java
index bb8950a589a5..fba786b9c791 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToForLoopParameterInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToForLoopParameterInspection.java
@@ -86,8 +86,7 @@ public class AssignmentToForLoopParameterInspection
@Override public void visitPrefixExpression(
@NotNull PsiPrefixExpression expression) {
super.visitPrefixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return;
@@ -103,8 +102,7 @@ public class AssignmentToForLoopParameterInspection
@Override public void visitPostfixExpression(
@NotNull PsiPostfixExpression expression) {
super.visitPostfixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToMethodParameterInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToMethodParameterInspection.java
index 4b387f17d41b..6a276ed5bf3c 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToMethodParameterInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToMethodParameterInspection.java
@@ -128,8 +128,7 @@ public class AssignmentToMethodParameterInspection
return;
}
super.visitPostfixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToStaticFieldFromInstanceMethodInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToStaticFieldFromInstanceMethodInspection.java
index 9df1215c85a7..fd216143a4fd 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToStaticFieldFromInstanceMethodInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/AssignmentToStaticFieldFromInstanceMethodInspection.java
@@ -57,8 +57,7 @@ public class AssignmentToStaticFieldFromInstanceMethodInspection
@Override public void visitPrefixExpression(
@NotNull PsiPrefixExpression expression){
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)){
return;
@@ -72,8 +71,7 @@ public class AssignmentToStaticFieldFromInstanceMethodInspection
@Override public void visitPostfixExpression(
@NotNull PsiPostfixExpression expression){
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)){
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/ReplaceAssignmentWithOperatorAssignmentInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/ReplaceAssignmentWithOperatorAssignmentInspection.java
index 24d6cfad540b..1a1084c5e51f 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/ReplaceAssignmentWithOperatorAssignmentInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/assignment/ReplaceAssignmentWithOperatorAssignmentInspection.java
@@ -154,8 +154,7 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection
@Override public void visitAssignmentExpression(@NotNull
PsiAssignmentExpression assignment){
super.visitAssignmentExpression(assignment);
- final PsiJavaToken sign = assignment.getOperationSign();
- final IElementType assignmentTokenType = sign.getTokenType();
+ final IElementType assignmentTokenType = assignment.getOperationTokenType();
if(!assignmentTokenType.equals(JavaTokenType.EQ)){
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/bitwise/IncompatibleMaskInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/bitwise/IncompatibleMaskInspection.java
index 98da35cbf505..b6fac5a91457 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/bitwise/IncompatibleMaskInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/bitwise/IncompatibleMaskInspection.java
@@ -43,9 +43,7 @@ public class IncompatibleMaskInspection extends BaseInspection {
public String buildErrorString(Object... infos){
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) infos[0];
- final PsiJavaToken operationSign =
- binaryExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if(tokenType.equals(JavaTokenType.EQEQ)){
return InspectionGadgetsBundle.message(
"incompatible.mask.operation.problem.descriptor.always.false");
@@ -105,8 +103,7 @@ public class IncompatibleMaskInspection extends BaseInspection {
private static boolean isIncompatibleMask(
PsiBinaryExpression maskExpression,
PsiExpression constantExpression){
- final PsiJavaToken sign = maskExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = maskExpression.getOperationTokenType();
final Object constantValue =
ConstantExpressionUtil.computeCastTo(constantExpression,
PsiType.LONG);
@@ -156,8 +153,7 @@ public class IncompatibleMaskInspection extends BaseInspection {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.OR) &&
!tokenType.equals(JavaTokenType.AND)){
return false;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/bitwise/PointlessBitwiseExpressionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/bitwise/PointlessBitwiseExpressionInspection.java
index fc6cf4d696f7..ffe7667093b8 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/bitwise/PointlessBitwiseExpressionInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/bitwise/PointlessBitwiseExpressionInspection.java
@@ -85,8 +85,7 @@ public class PointlessBitwiseExpressionInspection extends BaseInspection {
(PsiBinaryExpression) expression;
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
assert rhs != null;
if(tokenType.equals(JavaTokenType.AND)){
if(isZero(lhs) || isAllOnes(rhs)){
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/NonShortCircuitBooleanInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/NonShortCircuitBooleanInspection.java
index 56c1695cfcee..6d5aca57ec1d 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/NonShortCircuitBooleanInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/NonShortCircuitBooleanInspection.java
@@ -64,8 +64,7 @@ public class NonShortCircuitBooleanInspection extends BaseInspection {
(PsiBinaryExpression) descriptor.getPsiElement();
final PsiExpression lhs = expression.getLOperand();
final PsiExpression rhs = expression.getROperand();
- final PsiJavaToken operationSign = expression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
assert rhs != null;
final String newExpression = lhs.getText() +
getShortCircuitOperand(tokenType) + rhs.getText();
@@ -96,8 +95,7 @@ public class NonShortCircuitBooleanInspection extends BaseInspection {
if(!(expression.getROperand() != null)){
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.AND) &&
!tokenType.equals(JavaTokenType.OR)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/ObjectToStringInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/ObjectToStringInspection.java
index c4a7204f0919..0c07612276a3 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/ObjectToStringInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/ObjectToStringInspection.java
@@ -75,8 +75,7 @@ public class ObjectToStringInspection extends BaseInspection {
if(!WellFormednessUtils.isWellFormed(expression)) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSEQ)) {
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/SubtractionInCompareToInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/SubtractionInCompareToInspection.java
index d89096c29990..0518c5b346d7 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/SubtractionInCompareToInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/SubtractionInCompareToInspection.java
@@ -66,8 +66,7 @@ public class SubtractionInCompareToInspection extends BaseInspection {
if(rhs == null){
return false;
}
- final PsiJavaToken sign = exp.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
return tokenType.equals(JavaTokenType.MINUS);
}
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/classlayout/BooleanFieldAlwaysNegatedInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/classlayout/BooleanFieldAlwaysNegatedInspection.java
index b899e9c7bcae..f0dc53d91462 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/classlayout/BooleanFieldAlwaysNegatedInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/classlayout/BooleanFieldAlwaysNegatedInspection.java
@@ -133,8 +133,7 @@ public class BooleanFieldAlwaysNegatedInspection extends BaseGlobalInspection {
private static boolean isInvertedFieldRead(PsiReferenceExpression referenceExpression) {
final PsiPrefixExpression prefixExpression = PsiTreeUtil.getParentOfType(referenceExpression, PsiPrefixExpression.class);
if (prefixExpression != null) {
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (tokenType.equals(JavaTokenType.EXCL)) {
return true;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/DuplicateBooleanBranchInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/DuplicateBooleanBranchInspection.java
index 2e0287ec542a..e13eeebffcab 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/DuplicateBooleanBranchInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/DuplicateBooleanBranchInspection.java
@@ -119,8 +119,7 @@ public class DuplicateBooleanBranchInspection extends BaseInspection {
if (condition instanceof PsiBinaryExpression) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) condition;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType testTokeType = sign.getTokenType();
+ final IElementType testTokeType = binaryExpression.getOperationTokenType();
if (testTokeType.equals(tokenType)) {
final PsiExpression lhs = binaryExpression.getLOperand();
collectConditions(lhs, conditions, tokenType);
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/DuplicateConditionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/DuplicateConditionInspection.java
index d5cad2ef4894..58d4b0b5cc0d 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/DuplicateConditionInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/DuplicateConditionInspection.java
@@ -144,8 +144,7 @@ public class DuplicateConditionInspection extends BaseInspection {
if (condition instanceof PsiBinaryExpression) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)condition;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (JavaTokenType.OROR.equals(tokenType)) {
final PsiExpression lhs = binaryExpression.getLOperand();
collectConditionsForExpression(lhs, conditions);
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java
index bc516ce4e17a..70e56ee5a37c 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java
@@ -176,8 +176,7 @@ public class LoopConditionNotUpdatedInsideLoopInspection
} else if (condition instanceof PsiPrefixExpression) {
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression)condition;
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (JavaTokenType.EXCL.equals(tokenType) ||
JavaTokenType.PLUS.equals(tokenType) ||
JavaTokenType.MINUS.equals(tokenType)) {
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/OverlyComplexBooleanExpressionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/OverlyComplexBooleanExpressionInspection.java
index 8fe9a0662d3e..c3a77298d78d 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/OverlyComplexBooleanExpressionInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/OverlyComplexBooleanExpressionInspection.java
@@ -242,8 +242,7 @@ public class OverlyComplexBooleanExpressionInspection
} else if (expression instanceof PsiPrefixExpression) {
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression) expression;
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
return tokenType.equals(JavaTokenType.EXCL);
} else if (expression instanceof PsiParenthesizedExpression) {
final PsiParenthesizedExpression parenthesizedExpression =
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/PointlessBooleanExpressionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/PointlessBooleanExpressionInspection.java
index 6e3ab5c5fb84..f7257abb00ef 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/PointlessBooleanExpressionInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/PointlessBooleanExpressionInspection.java
@@ -100,14 +100,13 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
@Nullable
private String calculateSimplifiedBinaryExpression(
PsiBinaryExpression expression){
- final PsiJavaToken sign = expression.getOperationSign();
- final PsiExpression lhs = expression.getLOperand();
+ final PsiExpression lhs = expression.getLOperand();
final PsiExpression rhs = expression.getROperand();
if(rhs == null){
return null;
}
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
final String rhsText = rhs.getText();
final String lhsText = lhs.getText();
if(tokenType.equals(JavaTokenType.ANDAND) ||
@@ -156,9 +155,8 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
if(ComparisonUtils.isComparison(exp)){
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) exp;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final String negatedComparison =
- ComparisonUtils.getNegatedComparison(sign);
+ final String negatedComparison =
+ ComparisonUtils.getNegatedComparison(binaryExpression.getOperationTokenType());
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
assert rhs != null;
@@ -284,9 +282,8 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
@Override public void visitPrefixExpression(
@NotNull PsiPrefixExpression expression){
super.visitPrefixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final PsiExpression operand = expression.getOperand();
- final IElementType tokenType = sign.getTokenType();
+ final PsiExpression operand = expression.getOperand();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!(!tokenType.equals(JavaTokenType.EXCL) ||
!notExpressionIsPointless(operand))){
registerError(expression, expression);
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/TrivialIfInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/TrivialIfInspection.java
index 2e9c56bd5011..c2aeb66ed3ea 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/TrivialIfInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/TrivialIfInspection.java
@@ -386,10 +386,8 @@ public class TrivialIfInspection extends BaseInspection {
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType thenTokenType = thenSign.getTokenType();
- if (!thenTokenType.equals(elseSign.getTokenType())) {
+ final IElementType thenTokenType = thenExpression.getOperationTokenType();
+ if (!thenTokenType.equals(elseExpression.getOperationTokenType())) {
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
@@ -419,10 +417,8 @@ public class TrivialIfInspection extends BaseInspection {
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType thenTokenType = thenSign.getTokenType();
- if (!thenTokenType.equals(elseSign.getTokenType())) {
+ final IElementType thenTokenType = thenExpression.getOperationTokenType();
+ if (!thenTokenType.equals(elseExpression.getOperationTokenType())) {
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
@@ -461,10 +457,8 @@ public class TrivialIfInspection extends BaseInspection {
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType thenTokenType = thenSign.getTokenType();
- if (!thenTokenType.equals(elseSign.getTokenType())) {
+ final IElementType thenTokenType = thenExpression.getOperationTokenType();
+ if (!thenTokenType.equals(elseExpression.getOperationTokenType())) {
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
@@ -503,10 +497,8 @@ public class TrivialIfInspection extends BaseInspection {
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType thenTokenType = thenSign.getTokenType();
- if (!thenTokenType.equals(elseSign.getTokenType())) {
+ final IElementType thenTokenType = thenExpression.getOperationTokenType();
+ if (!thenTokenType.equals(elseExpression.getOperationTokenType())) {
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/dataflow/ConstantValueVariableUseInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/dataflow/ConstantValueVariableUseInspection.java
index b20663dbe8a0..b158ca914a79 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/dataflow/ConstantValueVariableUseInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/dataflow/ConstantValueVariableUseInspection.java
@@ -238,9 +238,7 @@ public class ConstantValueVariableUseInspection extends BaseInspection {
return;
}
super.visitPrefixExpression(prefixExpression);
- final PsiJavaToken operationSign =
- prefixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return;
@@ -265,9 +263,7 @@ public class ConstantValueVariableUseInspection extends BaseInspection {
return;
}
super.visitPostfixExpression(postfixExpression);
- final PsiJavaToken operationSign =
- postfixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/dataflow/ReuseOfLocalVariableInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/dataflow/ReuseOfLocalVariableInspection.java
index 03dc462c8ba0..ecbff4f02cdb 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/dataflow/ReuseOfLocalVariableInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/dataflow/ReuseOfLocalVariableInspection.java
@@ -185,8 +185,7 @@ public class ReuseOfLocalVariableInspection
if(variable.getInitializer() == null){
return;
}
- final PsiJavaToken sign = assignment.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = assignment.getOperationTokenType();
if(!JavaTokenType.EQ.equals(tokenType)){
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/errorhandling/BadExceptionCaughtInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/errorhandling/BadExceptionCaughtInspection.java
index 67fa3b18ec64..12ea1945171b 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/errorhandling/BadExceptionCaughtInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/errorhandling/BadExceptionCaughtInspection.java
@@ -15,37 +15,53 @@
*/
package com.siyeh.ig.errorhandling;
-import com.intellij.codeInspection.ui.ListEditForm;
-import com.intellij.openapi.util.InvalidDataException;
-import com.intellij.openapi.util.WriteExternalException;
+import com.intellij.codeInspection.ui.ListTable;
+import com.intellij.codeInspection.ui.ListWrappingTableModel;
+import com.intellij.openapi.actionSystem.ActionToolbar;
+import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.psi.PsiCatchSection;
import com.intellij.psi.PsiParameter;
-import com.intellij.psi.PsiTryStatement;
import com.intellij.psi.PsiType;
import com.intellij.psi.PsiTypeElement;
+import com.intellij.ui.ScrollPaneFactory;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
-import org.jdom.Element;
+import com.siyeh.ig.ui.ExternalizableStringSet;
+import com.siyeh.ig.ui.UiUtils;
import org.jetbrains.annotations.NotNull;
-import javax.swing.*;
-import java.util.ArrayList;
-import java.util.HashSet;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import java.awt.Dimension;
+import java.awt.FontMetrics;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
import java.util.List;
-import java.util.Set;
public class BadExceptionCaughtInspection extends BaseInspection {
/** @noinspection PublicField*/
- public String exceptionsString =
- "java.lang.NullPointerException" + ',' +
- "java.lang.IllegalMonitorStateException" + ',' +
- "java.lang.ArrayIndexOutOfBoundsException";
+ public String exceptionsString = "";
- final List exceptionList = new ArrayList(32);
+ /** @noinspection PublicField*/
+ public final ExternalizableStringSet exceptions =
+ new ExternalizableStringSet(
+ "java.lang.NullPointerException",
+ "java.lang.IllegalMonitorStateException",
+ "java.lang.ArrayIndexOutOfBoundsException"
+ );
public BadExceptionCaughtInspection() {
- parseString(exceptionsString, exceptionList);
+ if (exceptionsString.length() != 0) {
+ final List strings =
+ StringUtil.split(exceptionsString, ",");
+ for (String string : strings) {
+ exceptions.add(string);
+ }
+ exceptionsString = "";
+ }
}
@NotNull
@@ -53,62 +69,84 @@ public class BadExceptionCaughtInspection extends BaseInspection {
return "ProhibitedExceptionCaught";
}
+ @Override
@NotNull
public String getDisplayName() {
return InspectionGadgetsBundle.message(
"bad.exception.caught.display.name");
}
+ @Override
@NotNull
public String buildErrorString(Object... infos) {
return InspectionGadgetsBundle.message(
"bad.exception.caught.problem.descriptor");
}
+ @Override
public JComponent createOptionsPanel() {
- final ListEditForm form = new ListEditForm(InspectionGadgetsBundle.message("exception.class.column.name"),
- exceptionList);
- return form.getContentPanel();
- }
-
- public void readSettings(Element element) throws InvalidDataException {
- super.readSettings(element);
- parseString(exceptionsString, exceptionList);
- }
-
- public void writeSettings(Element element) throws WriteExternalException {
- exceptionsString = formatString(exceptionList);
- super.writeSettings(element);
+ final JComponent panel = new JPanel(new GridBagLayout());
+
+ final ListTable table =
+ new ListTable(new ListWrappingTableModel(exceptions,
+ InspectionGadgetsBundle.message(
+ "ignored.io.resource.types")));
+ final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(table);
+ final FontMetrics fontMetrics = table.getFontMetrics(table.getFont());
+ scrollPane.setPreferredSize(new Dimension(0, fontMetrics.getHeight() * 7));
+ scrollPane.setMinimumSize(new Dimension(0, fontMetrics.getHeight() * 3));
+
+ final ActionToolbar toolbar =
+ UiUtils.createAddRemoveTreeClassChooserToolbar(table,
+ InspectionGadgetsBundle.message(
+ "exception.class.column.name"),
+ "java.lang.Throwable");
+
+ final GridBagConstraints constraints = new GridBagConstraints();
+ constraints.anchor = GridBagConstraints.FIRST_LINE_START;
+ constraints.gridx = 0;
+ constraints.gridy = 0;
+ constraints.insets.left = 4;
+ constraints.insets.right = 4;
+ constraints.fill = GridBagConstraints.HORIZONTAL;
+ panel.add(toolbar.getComponent(), constraints);
+
+ constraints.gridy = 1;
+ constraints.weightx = 1.0;
+ constraints.weighty = 1.0;
+ constraints.fill = GridBagConstraints.BOTH;
+ panel.add(scrollPane, constraints);
+
+ return panel;
}
+ @Override
public BaseInspectionVisitor buildVisitor() {
return new BadExceptionCaughtVisitor();
}
private class BadExceptionCaughtVisitor extends BaseInspectionVisitor {
- private final Set exceptionSet = new HashSet(exceptionList);
-
- @Override public void visitTryStatement(@NotNull PsiTryStatement statement) {
- super.visitTryStatement(statement);
- final PsiParameter[] catchBlockParameters =
- statement.getCatchBlockParameters();
- for (PsiParameter parameter : catchBlockParameters) {
- if(parameter == null) {
- continue;
- }
- final PsiType type = parameter.getType();
- final String text = type.getCanonicalText();
- if (text == null) {
- continue;
- }
- if (exceptionSet.contains(text)) {
- final PsiTypeElement typeElement =
- parameter.getTypeElement();
- registerError(typeElement);
- }
+ @Override
+ public void visitCatchSection(PsiCatchSection section) {
+ super.visitCatchSection(section);
+ final PsiParameter parameter = section.getParameter();
+ if(parameter == null) {
+ return;
}
+ final PsiType type = parameter.getType();
+ final String text = type.getCanonicalText();
+ if (text == null) {
+ return;
+ }
+ if (!exceptions.contains(text)) {
+ return;
+ }
+ final PsiTypeElement typeElement = parameter.getTypeElement();
+ if (typeElement == null) {
+ return;
+ }
+ registerError(typeElement);
}
}
-
}
\ No newline at end of file
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/EqualityToEqualsFix.java b/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/EqualityToEqualsFix.java
index 63b33f956ef5..a27f32828c44 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/EqualityToEqualsFix.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/EqualityToEqualsFix.java
@@ -43,8 +43,7 @@ public class EqualityToEqualsFix extends InspectionGadgetsFix {
return;
}
boolean negated=false;
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (JavaTokenType.NE.equals(tokenType)) {
negated = true;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/SerialVersionUIDBuilder.java b/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/SerialVersionUIDBuilder.java
index 3ad54aaec625..785f9b4ee57a 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/SerialVersionUIDBuilder.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/SerialVersionUIDBuilder.java
@@ -477,8 +477,7 @@ public class SerialVersionUIDBuilder extends JavaRecursiveElementVisitor{
} else if(parent instanceof PsiPostfixExpression){
final PsiPostfixExpression postfixExpression =
(PsiPostfixExpression) parent;
- final PsiJavaToken operationSign = postfixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
if(tokenType.equals(JavaTokenType.PLUSPLUS)){
name = ACCESS_METHOD_NAME_PREFIX + accessMethodIndex +
"08";
@@ -488,8 +487,7 @@ public class SerialVersionUIDBuilder extends JavaRecursiveElementVisitor{
}
} else if(parent instanceof PsiPrefixExpression){
final PsiPrefixExpression prefixExpression = (PsiPrefixExpression) parent;
- final PsiJavaToken operationSign = prefixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if(tokenType.equals(JavaTokenType.PLUSPLUS)){
name = ACCESS_METHOD_NAME_PREFIX + accessMethodIndex +
"04";
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/initialization/NonThreadSafeLazyInitializationInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/initialization/NonThreadSafeLazyInitializationInspection.java
index 9565cfa9daa4..3fdf9b064f71 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/initialization/NonThreadSafeLazyInitializationInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/initialization/NonThreadSafeLazyInitializationInspection.java
@@ -136,8 +136,7 @@ public class NonThreadSafeLazyInitializationInspection
}
final PsiBinaryExpression comparison =
(PsiBinaryExpression) condition;
- final PsiJavaToken sign = comparison.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = comparison.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.EQEQ)){
return false;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/internationalization/StringConcatenationInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/internationalization/StringConcatenationInspection.java
index b0e3f37b4943..a6c45289be73 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/internationalization/StringConcatenationInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/internationalization/StringConcatenationInspection.java
@@ -165,8 +165,7 @@ public class StringConcatenationInspection extends BaseInspection {
if(rhs == null) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!JavaTokenType.PLUS.equals(tokenType)) {
return;
}
@@ -261,7 +260,7 @@ public class StringConcatenationInspection extends BaseInspection {
if (NonNlsUtils.isNonNlsAnnotatedUse(expression)) {
return;
}
- registerError(sign, expression);
+ registerError(expression.getOperationSign(), expression);
}
private boolean isInsideAnnotation(PsiBinaryExpression expression) {
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/MultiplyOrDivideByPowerOfTwoInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/MultiplyOrDivideByPowerOfTwoInspection.java
index e023a957141e..2727f19257f3 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/MultiplyOrDivideByPowerOfTwoInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/MultiplyOrDivideByPowerOfTwoInspection.java
@@ -66,10 +66,9 @@ public class MultiplyOrDivideByPowerOfTwoInspection
if (expression instanceof PsiAssignmentExpression) {
final PsiAssignmentExpression exp =
(PsiAssignmentExpression)expression;
- final PsiJavaToken sign = exp.getOperationSign();
- lhs = exp.getLExpression();
+ lhs = exp.getLExpression();
rhs = exp.getRExpression();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
if (tokenType.equals(JavaTokenType.ASTERISKEQ)) {
operator = "<<=";
} else {
@@ -77,10 +76,9 @@ public class MultiplyOrDivideByPowerOfTwoInspection
}
} else {
final PsiBinaryExpression exp = (PsiBinaryExpression)expression;
- final PsiJavaToken sign = exp.getOperationSign();
- lhs = exp.getLOperand();
+ lhs = exp.getLOperand();
rhs = exp.getROperand();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
if (tokenType.equals(JavaTokenType.ASTERISK)) {
operator = "<<";
} else {
@@ -159,9 +157,8 @@ public class MultiplyOrDivideByPowerOfTwoInspection
if (rhs == null) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.ASTERISK)) {
if (!checkDivision || !tokenType.equals(JavaTokenType.DIV)) {
return;
@@ -186,8 +183,7 @@ public class MultiplyOrDivideByPowerOfTwoInspection
if (!WellFormednessUtils.isWellFormed(expression)) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.ASTERISKEQ)) {
if (!checkDivision || !tokenType.equals(JavaTokenType.DIVEQ)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/SimplifiableIfStatementInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/SimplifiableIfStatementInspection.java
index c87a8977f645..a89eba4fb367 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/SimplifiableIfStatementInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/SimplifiableIfStatementInspection.java
@@ -245,9 +245,8 @@ public class SimplifiableIfStatementInspection extends BaseInspection {
} else if (ComparisonUtils.isComparison(expression)) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final String negatedComparison =
- ComparisonUtils.getNegatedComparison(sign);
+ final String negatedComparison =
+ ComparisonUtils.getNegatedComparison(binaryExpression.getOperationTokenType());
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
if (ParenthesesUtils.getPrecedence(expression) > precedence) {
@@ -390,13 +389,8 @@ public class SimplifiableIfStatementInspection extends BaseInspection {
(PsiExpressionStatement)elseBranch;
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)elseStatement.getExpression();
- final PsiJavaToken thenOperationSign =
- thenExpression.getOperationSign();
- final IElementType thenTokenType = thenOperationSign.getTokenType();
- final PsiJavaToken elseOperationSign =
- elseExpression.getOperationSign();
- final IElementType elseTokenType = elseOperationSign.getTokenType();
- if (!thenTokenType.equals(elseTokenType)) {
+ final IElementType elseTokenType = elseExpression.getOperationTokenType();
+ if (!thenExpression.getOperationTokenType().equals(elseTokenType)) {
return false;
}
final PsiExpression thenRhs = thenExpression.getRExpression();
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/jdk/AutoUnboxingInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/jdk/AutoUnboxingInspection.java
index dbf2acc0d9f5..7b88518114b0 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/jdk/AutoUnboxingInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/jdk/AutoUnboxingInspection.java
@@ -148,9 +148,7 @@ public class AutoUnboxingInspection extends BaseInspection {
!unboxedType.equalsToText("boolean") ) {
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression)parent;
- final PsiJavaToken operationSign =
- prefixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (JavaTokenType.PLUSPLUS.equals(tokenType)) {
replaceExpression(prefixExpression,
expressionText + '=' + newExpressionText + "+1");
@@ -161,9 +159,7 @@ public class AutoUnboxingInspection extends BaseInspection {
} else if (parent instanceof PsiPostfixExpression) {
final PsiPostfixExpression postfixExpression =
(PsiPostfixExpression)parent;
- final PsiJavaToken operationSign =
- postfixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
final PsiElement grandParent = postfixExpression.getParent();
if (grandParent instanceof PsiExpressionStatement) {
if (JavaTokenType.PLUSPLUS.equals(tokenType)) {
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/junit/SimplifiableJUnitAssertionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/junit/SimplifiableJUnitAssertionInspection.java
index 1feb199cc7d7..559ceb5ae8ed 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/junit/SimplifiableJUnitAssertionInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/junit/SimplifiableJUnitAssertionInspection.java
@@ -693,9 +693,7 @@ public class SimplifiableJUnitAssertionInspection extends BaseInspection {
if (expression instanceof PsiBinaryExpression) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)expression;
- final PsiJavaToken sign =
- binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.EQEQ)) {
return false;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/methodmetrics/NegationCountVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/methodmetrics/NegationCountVisitor.java
index e89767088291..bbd989ce4d06 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/methodmetrics/NegationCountVisitor.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/methodmetrics/NegationCountVisitor.java
@@ -25,8 +25,7 @@ class NegationCountVisitor extends JavaRecursiveElementVisitor {
@Override public void visitBinaryExpression(@NotNull PsiBinaryExpression expression) {
super.visitBinaryExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (tokenType.equals(JavaTokenType.NE)) {
m_count++;
}
@@ -38,8 +37,7 @@ class NegationCountVisitor extends JavaRecursiveElementVisitor {
@Override public void visitPrefixExpression(@NotNull PsiPrefixExpression expression) {
super.visitPrefixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- if (sign.getTokenType().equals(JavaTokenType.EXCL)) {
+ if (expression.getOperationTokenType().equals(JavaTokenType.EXCL)) {
m_count++;
}
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/ForCanBeForeachInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/ForCanBeForeachInspection.java
index 2f1a34d812a8..babd0bec118e 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/ForCanBeForeachInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/ForCanBeForeachInspection.java
@@ -1245,8 +1245,7 @@ public class ForCanBeForeachInspection extends BaseInspection{
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) condition;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.LT)){
return false;
}
@@ -1266,8 +1265,7 @@ public class ForCanBeForeachInspection extends BaseInspection{
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) condition;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.LT)){
return null;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IfCanBeSwitchInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IfCanBeSwitchInspection.java
index e38c08f88170..e025aa571464 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IfCanBeSwitchInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IfCanBeSwitchInspection.java
@@ -379,8 +379,7 @@ public class IfCanBeSwitchInspection extends BaseInspection {
(PsiBinaryExpression)expression;
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (JavaTokenType.OROR.equals(tokenType)) {
extractCaseExpressions(lhs, switchExpression,
values);
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IndexOfReplaceableByContainsInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IndexOfReplaceableByContainsInspection.java
index 9cef431076f4..11a4f4b6c2f1 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IndexOfReplaceableByContainsInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IndexOfReplaceableByContainsInspection.java
@@ -53,17 +53,16 @@ public class IndexOfReplaceableByContainsInspection
public String buildErrorString(Object... infos) {
final PsiBinaryExpression expression = (PsiBinaryExpression)infos[0];
final PsiExpression lhs = expression.getLOperand();
- final PsiJavaToken sign = expression.getOperationSign();
- final String text;
+ final String text;
if (lhs instanceof PsiMethodCallExpression) {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)lhs;
- text = createContainsExpressionText(callExpression, sign, false);
+ text = createContainsExpressionText(callExpression, false, expression.getOperationTokenType());
} else {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)expression.getROperand();
assert callExpression != null;
- text = createContainsExpressionText(callExpression, sign, true);
+ text = createContainsExpressionText(callExpression, true, expression.getOperationTokenType());
}
return InspectionGadgetsBundle.message(
"indexof.replaceable.by.contains.problem.descriptor", text);
@@ -89,19 +88,18 @@ public class IndexOfReplaceableByContainsInspection
(PsiBinaryExpression) element;
final PsiExpression lhs = expression.getLOperand();
final PsiExpression rhs = expression.getROperand();
- final PsiJavaToken sign = expression.getOperationSign();
- final String newExpressionText;
+ final String newExpressionText;
if (lhs instanceof PsiMethodCallExpression) {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)lhs;
newExpressionText =
- createContainsExpressionText(callExpression, sign,
- false);
+ createContainsExpressionText(callExpression,
+ false, expression.getOperationTokenType());
} else if (rhs instanceof PsiMethodCallExpression) {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)rhs;
newExpressionText =
- createContainsExpressionText(callExpression, sign, true);
+ createContainsExpressionText(callExpression, true, expression.getOperationTokenType());
} else {
return;
}
@@ -116,10 +114,8 @@ public class IndexOfReplaceableByContainsInspection
}
static String createContainsExpressionText(
- @NotNull PsiMethodCallExpression call,
- @NotNull PsiJavaToken sign,
- boolean flipped) {
- final IElementType tokenType = sign.getTokenType();
+ @NotNull PsiMethodCallExpression call,
+ boolean flipped, IElementType tokenType) {
final PsiReferenceExpression methodExpression =
call.getMethodExpression();
final PsiExpression qualifierExpression =
@@ -169,21 +165,19 @@ public class IndexOfReplaceableByContainsInspection
}
final PsiExpression lhs = expression.getLOperand();
if (lhs instanceof PsiMethodCallExpression) {
- final PsiJavaToken sign = expression.getOperationSign();
- if (canBeReplacedByContains(lhs, sign, rhs, false)) {
+ if (canBeReplacedByContains(lhs, rhs, false, expression.getOperationTokenType())) {
registerError(expression, expression);
}
} else if (rhs instanceof PsiMethodCallExpression) {
- final PsiJavaToken sign = expression.getOperationSign();
- if (canBeReplacedByContains(rhs, sign, lhs, true)) {
+ if (canBeReplacedByContains(rhs, lhs, true, expression.getOperationTokenType())) {
registerError(expression, expression);
}
}
}
private static boolean canBeReplacedByContains(
- PsiExpression lhs, PsiJavaToken sign,
- PsiExpression rhs, boolean flipped) {
+ PsiExpression lhs,
+ PsiExpression rhs, boolean flipped, IElementType tokenType) {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)lhs;
if (!isIndexOfCall(callExpression)) {
@@ -196,7 +190,6 @@ public class IndexOfReplaceableByContainsInspection
}
final Integer integer = (Integer)object;
final int constant = integer.intValue();
- final IElementType tokenType = sign.getTokenType();
if (flipped) {
if (constant == -1 && (JavaTokenType.NE.equals(tokenType) ||
JavaTokenType.LT.equals(tokenType) ||
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/BadOddnessInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/BadOddnessInspection.java
index fea34f7ebb81..3c3992957660 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/BadOddnessInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/BadOddnessInspection.java
@@ -67,8 +67,7 @@ public class BadOddnessInspection extends BaseInspection {
return false;
}
final PsiBinaryExpression binary = (PsiBinaryExpression) exp;
- final PsiJavaToken sign = binary.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binary.getOperationTokenType();
if (!JavaTokenType.PERC.equals(tokenType)) {
return false;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/CharUsedInArithmeticContextInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/CharUsedInArithmeticContextInspection.java
index 30a2e959fcfc..ece02825083e 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/CharUsedInArithmeticContextInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/CharUsedInArithmeticContextInspection.java
@@ -13,12 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package com.siyeh.ig.numeric;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.tree.IElementType;
+import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.util.IncorrectOperationException;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
@@ -50,8 +52,8 @@ public class CharUsedInArithmeticContextInspection extends BaseInspection {
@NotNull
@Override
protected InspectionGadgetsFix[] buildFixes(Object... infos) {
- final List result = new ArrayList();
- final PsiElement expression = (PsiElement)infos[0];
+ List result = new ArrayList();
+ PsiElement expression = (PsiElement)infos[0];
PsiElement parent = expression.getParent();
if (parent instanceof PsiExpression) {
final PsiExpression binaryExpression =
@@ -65,10 +67,8 @@ public class CharUsedInArithmeticContextInspection extends BaseInspection {
if (!(expression instanceof PsiLiteralExpression)) {
return result.toArray(new InspectionGadgetsFix[result.size()]);
}
- while (parent instanceof PsiBinaryExpression) {
- final PsiBinaryExpression binaryExpression =
- (PsiBinaryExpression) parent;
- if (TypeUtils.expressionHasType(binaryExpression,
+ while (parent instanceof PsiPolyadicExpression) {
+ if (TypeUtils.expressionHasType((PsiExpression)parent,
CommonClassNames.JAVA_LANG_STRING)) {
result.add(new CharUsedInArithmeticContentFix());
break;
@@ -142,32 +142,31 @@ public class CharUsedInArithmeticContextInspection extends BaseInspection {
private static class CharUsedInArithmeticContextVisitor
extends BaseInspectionVisitor {
-
- @Override
- public void visitBinaryExpression(PsiBinaryExpression expression) {
- super.visitBinaryExpression(expression);
- final PsiType type = expression.getType();
- if (type == null || type.equalsToText("java.lang.String")) {
- return;
- }
+ @Override
+ public void visitPolyadicExpression(PsiPolyadicExpression expression) {
+ super.visitPolyadicExpression(expression);
final IElementType tokenType = expression.getOperationTokenType();
if (ComparisonUtils.isComparisonOperation(tokenType)) {
return;
}
- final PsiExpression lhs = expression.getLOperand();
- final PsiType lhsType = lhs.getType();
- if (PsiType.CHAR.equals(lhsType)) {
- registerError(lhs, lhs);
- }
- final PsiExpression rhs = expression.getROperand();
- if (rhs == null) {
- return;
- }
- final PsiType rhsType = rhs.getType();
- if (!PsiType.CHAR.equals(rhsType)) {
- return;
- }
- registerError(rhs, rhs);
+ PsiExpression[] operands = expression.getOperands();
+ PsiType left = operands[0].getType();
+ for (int i = 1; i < operands.length; i++) {
+ PsiExpression operand = operands[i];
+ final PsiType rType = operand.getType();
+ PsiType opType = TypeConversionUtil.calcTypeForBinaryExpression(left, rType, tokenType, true);
+ if (opType == null || opType.equalsToText("java.lang.String")) {
+ return;
+ }
+
+ if (PsiType.CHAR.equals(rType)) {
+ registerError(operand, operand);
+ }
+ if (PsiType.CHAR.equals(left) && i == 1) {
+ registerError(operands[0], operands[0]);
+ }
+ left = rType;
}
+ }
}
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/ComparisonToNaNInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/ComparisonToNaNInspection.java
index 958666ac7deb..4430c0ca31eb 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/ComparisonToNaNInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/ComparisonToNaNInspection.java
@@ -39,8 +39,7 @@ public class ComparisonToNaNInspection extends BaseInspection {
@NotNull
public String buildErrorString(Object... infos) {
final PsiBinaryExpression comparison = (PsiBinaryExpression)infos[0];
- final PsiJavaToken sign = comparison.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = comparison.getOperationTokenType();
if (tokenType.equals(JavaTokenType.EQEQ)) {
return InspectionGadgetsBundle.message(
"comparison.to.nan.problem.descriptor1");
@@ -87,8 +86,7 @@ public class ComparisonToNaNInspection extends BaseInspection {
}
assert operand != null;
final String operandText = operand.getText();
- final PsiJavaToken sign = comparison.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = comparison.getOperationTokenType();
final String negationString;
if (tokenType.equals(JavaTokenType.EQEQ)) {
negationString = "";
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/DivideByZeroInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/DivideByZeroInspection.java
index 8e85f5af600e..f36a4d9e6b73 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/DivideByZeroInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/DivideByZeroInspection.java
@@ -54,8 +54,7 @@ public class DivideByZeroInspection extends BaseInspection {
if (rhs == null) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.DIV) &&
!tokenType.equals(JavaTokenType.PERC)) {
return;
@@ -78,8 +77,7 @@ public class DivideByZeroInspection extends BaseInspection {
if (rhs == null) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.DIVEQ)
&& !tokenType.equals(JavaTokenType.PERCEQ)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/ImplicitNumericConversionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/ImplicitNumericConversionInspection.java
index 93e815e6ce34..1be0aae39005 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/ImplicitNumericConversionInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/ImplicitNumericConversionInspection.java
@@ -243,8 +243,7 @@ public class ImplicitNumericConversionInspection extends BaseInspection {
}
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression)expression;
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (!JavaTokenType.MINUS.equals(tokenType)) {
return false;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/IntegerDivisionInFloatingPointContextInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/IntegerDivisionInFloatingPointContextInspection.java
index f02675881c22..da4e9a330355 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/IntegerDivisionInFloatingPointContextInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/IntegerDivisionInFloatingPointContextInspection.java
@@ -72,8 +72,7 @@ public class IntegerDivisionInFloatingPointContextInspection
@Override public void visitBinaryExpression(
@NotNull PsiBinaryExpression expression) {
super.visitBinaryExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.DIV)) {
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/IntegerMultiplicationImplicitCastToLongInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/IntegerMultiplicationImplicitCastToLongInspection.java
index 9c1ba2ba268e..127cffc272a3 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/IntegerMultiplicationImplicitCastToLongInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/IntegerMultiplicationImplicitCastToLongInspection.java
@@ -79,8 +79,7 @@ public class IntegerMultiplicationImplicitCastToLongInspection extends
@Override public void visitBinaryExpression(
@NotNull PsiBinaryExpression expression) {
super.visitBinaryExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.ASTERISK)
&& !tokenType.equals(JavaTokenType.LTLT)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/OverlyComplexArithmeticExpressionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/OverlyComplexArithmeticExpressionInspection.java
index 434257b08ba2..13f24a95b9cc 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/OverlyComplexArithmeticExpressionInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/OverlyComplexArithmeticExpressionInspection.java
@@ -16,6 +16,7 @@
package com.siyeh.ig.numeric;
import com.intellij.psi.*;
+import com.intellij.psi.tree.IElementType;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
@@ -37,15 +38,15 @@ public class OverlyComplexArithmeticExpressionInspection
/** @noinspection PublicField */
public int m_limit = TERM_LIMIT; //this is public for the DefaultJDOMExternalizer thingy
- private static final Set arithmeticTokens =
- new HashSet(5);
+ private static final Set arithmeticTokens =
+ new HashSet(5);
static {
- arithmeticTokens.add("+");
- arithmeticTokens.add("-");
- arithmeticTokens.add("*");
- arithmeticTokens.add("/");
- arithmeticTokens.add("%");
+ arithmeticTokens.add(JavaTokenType.PLUS);
+ arithmeticTokens.add(JavaTokenType.MINUS);
+ arithmeticTokens.add(JavaTokenType.ASTERISK);
+ arithmeticTokens.add(JavaTokenType.DIV);
+ arithmeticTokens.add(JavaTokenType.PERC);
}
@Override
@@ -162,16 +163,12 @@ public class OverlyComplexArithmeticExpressionInspection
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final String signText = sign.getText();
- return arithmeticTokens.contains(signText);
+ return arithmeticTokens.contains(binaryExpression.getOperationTokenType());
}
else if (expression instanceof PsiPrefixExpression) {
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression)expression;
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final String signText = sign.getText();
- return arithmeticTokens.contains(signText);
+ return arithmeticTokens.contains(prefixExpression.getOperationTokenType());
}
else if (expression instanceof PsiParenthesizedExpression) {
final PsiParenthesizedExpression parenthesizedExpression =
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java
index a15975403114..abaf829aae04 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java
@@ -38,20 +38,20 @@ import java.util.Set;
public class PointlessArithmeticExpressionInspection
extends BaseInspection {
- private static final Set arithmeticTokens =
- new HashSet(9);
+ private static final Set arithmeticTokens =
+ new HashSet(5);
- static {
- arithmeticTokens.add("+");
- arithmeticTokens.add("-");
- arithmeticTokens.add("*");
- arithmeticTokens.add("/");
- arithmeticTokens.add("%");
- arithmeticTokens.add(">");
- arithmeticTokens.add("<");
- arithmeticTokens.add("<=");
- arithmeticTokens.add(">=");
- }
+ static {
+ arithmeticTokens.add(JavaTokenType.PLUS);
+ arithmeticTokens.add(JavaTokenType.MINUS);
+ arithmeticTokens.add(JavaTokenType.ASTERISK);
+ arithmeticTokens.add(JavaTokenType.DIV);
+ arithmeticTokens.add(JavaTokenType.PERC);
+ arithmeticTokens.add(JavaTokenType.GT);
+ arithmeticTokens.add(JavaTokenType.LT);
+ arithmeticTokens.add(JavaTokenType.LE);
+ arithmeticTokens.add(JavaTokenType.GE);
+ }
/**
* @noinspection PublicField
@@ -90,11 +90,10 @@ public class PointlessArithmeticExpressionInspection
String calculateReplacementExpression(
PsiExpression expression) {
final PsiBinaryExpression exp = (PsiBinaryExpression) expression;
- final PsiJavaToken sign = exp.getOperationSign();
- final PsiExpression lhs = exp.getLOperand();
+ final PsiExpression lhs = exp.getLOperand();
final PsiExpression rhs = exp.getROperand();
assert rhs != null;
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
if (tokenType.equals(JavaTokenType.PLUS)) {
if (isZero(lhs)) {
return rhs.getText();
@@ -169,9 +168,7 @@ public class PointlessArithmeticExpressionInspection
PsiType.FLOAT.equals(expressionType)) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final String signText = sign.getText();
- if (!arithmeticTokens.contains(signText)) {
+ if (!arithmeticTokens.contains(expression.getOperationTokenType())) {
return;
}
if (TypeUtils.expressionHasType(expression,
@@ -179,7 +176,7 @@ public class PointlessArithmeticExpressionInspection
return;
}
final PsiExpression lhs = expression.getLOperand();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
final boolean isPointless;
if (tokenType.equals(JavaTokenType.PLUS)) {
isPointless = additionExpressionIsPointless(lhs, rhs);
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/LengthOneStringsInConcatenationInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/LengthOneStringsInConcatenationInspection.java
index 2bf7cfea75ad..4a5600335112 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/LengthOneStringsInConcatenationInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/LengthOneStringsInConcatenationInspection.java
@@ -113,8 +113,7 @@ public class LengthOneStringsInConcatenationInspection
return false;
}
final PsiBinaryExpression binaryExp = (PsiBinaryExpression)parent;
- final PsiJavaToken sign = binaryExp.getOperationSign();
- if (!JavaTokenType.PLUS.equals(sign.getTokenType())) {
+ if (!JavaTokenType.PLUS.equals(binaryExp.getOperationTokenType())) {
return false;
}
final PsiExpression lhs = binaryExp.getLOperand();
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/ManualArrayCopyInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/ManualArrayCopyInspection.java
index ff623e5ae556..9ec183594e2e 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/ManualArrayCopyInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/ManualArrayCopyInspection.java
@@ -562,8 +562,7 @@ public class ManualArrayCopyInspection extends BaseInspection {
}
final PsiAssignmentExpression assignment =
(PsiAssignmentExpression)strippedExpression;
- final PsiJavaToken sign = assignment.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = assignment.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.EQ)) {
return false;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/RandomDoubleForRandomIntegerInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/RandomDoubleForRandomIntegerInspection.java
index e6ae0cbbad7d..a6f84a528522 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/RandomDoubleForRandomIntegerInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/RandomDoubleForRandomIntegerInspection.java
@@ -160,8 +160,7 @@ public class RandomDoubleForRandomIntegerInspection
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
return JavaTokenType.ASTERISK.equals(tokenType);
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/SizeReplaceableByIsEmptyInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/SizeReplaceableByIsEmptyInspection.java
index 1996230b6d82..b8af1335ea5a 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/SizeReplaceableByIsEmptyInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/SizeReplaceableByIsEmptyInspection.java
@@ -98,8 +98,7 @@ public class SizeReplaceableByIsEmptyInspection extends BaseInspection {
return;
}
@NonNls String newExpression = qualifierExpression.getText();
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (!JavaTokenType.EQEQ.equals(tokenType)) {
newExpression = '!' + newExpression;
}
@@ -129,21 +128,19 @@ public class SizeReplaceableByIsEmptyInspection extends BaseInspection {
}
final PsiExpression lhs = expression.getLOperand();
if (lhs instanceof PsiMethodCallExpression) {
- final PsiJavaToken sign = expression.getOperationSign();
- if (canBeReplacedByIsEmpty(lhs, sign, rhs, false)) {
+ if (canBeReplacedByIsEmpty(lhs, rhs, false, expression.getOperationTokenType())) {
registerError(expression, isEmptyCall);
}
} else if (rhs instanceof PsiMethodCallExpression) {
- final PsiJavaToken sign = expression.getOperationSign();
- if (canBeReplacedByIsEmpty(rhs, sign, lhs, true)) {
+ if (canBeReplacedByIsEmpty(rhs, lhs, true, expression.getOperationTokenType())) {
registerError(expression, isEmptyCall);
}
}
}
private boolean canBeReplacedByIsEmpty(
- PsiExpression lhs, PsiJavaToken sign, PsiExpression rhs,
- boolean flipped) {
+ PsiExpression lhs, PsiExpression rhs,
+ boolean flipped, IElementType tokenType) {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)lhs;
if (!isSizeCall(callExpression)) {
@@ -159,8 +156,7 @@ public class SizeReplaceableByIsEmptyInspection extends BaseInspection {
if (constant != 0) {
return false;
}
- final IElementType tokenType = sign.getTokenType();
- if (JavaTokenType.EQEQ.equals(tokenType)) {
+ if (JavaTokenType.EQEQ.equals(tokenType)) {
return true;
}
if (ignoreNegations) {
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringBufferToStringInConcatenationInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringBufferToStringInConcatenationInspection.java
index 6bb758357b70..314899618e01 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringBufferToStringInConcatenationInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringBufferToStringInConcatenationInspection.java
@@ -93,8 +93,7 @@ public class StringBufferToStringInConcatenationInspection
}
final PsiBinaryExpression parentBinary =
(PsiBinaryExpression)parent;
- final PsiJavaToken sign = parentBinary.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = parentBinary.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUS)) {
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringConcatenationInLoopsInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringConcatenationInLoopsInspection.java
index bc68834f7b09..0e1162419f2d 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringConcatenationInLoopsInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringConcatenationInLoopsInspection.java
@@ -70,41 +70,38 @@ public class StringConcatenationInLoopsInspection extends BaseInspection {
private class StringConcatenationInLoopsVisitor
extends BaseInspectionVisitor {
-
- @Override public void visitBinaryExpression(
- @NotNull PsiBinaryExpression expression) {
- super.visitBinaryExpression(expression);
- if (expression.getROperand() == null) {
+ @Override
+ public void visitPolyadicExpression(PsiPolyadicExpression expression) {
+ super.visitPolyadicExpression(expression);
+ PsiExpression[] operands = expression.getOperands();
+ if (operands.length <= 1) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
- if (!tokenType.equals(JavaTokenType.PLUS)) {
- return;
- }
- final PsiType type = expression.getType();
- if (type == null) {
- return;
- }
- if (!TypeUtils.isJavaLangString(type)) {
- return;
- }
- if (!ControlFlowUtils.isInLoop(expression)) {
- return;
- }
- if (ControlFlowUtils.isInExitStatement(expression)) {
- return;
- }
- if (ExpressionUtils.isEvaluatedAtCompileTime(expression)) {
- return;
- }
- if (containingStatementExits(expression)) {
- return;
- }
- if (m_ignoreUnlessAssigned && !isAppendedRepeatedly(expression)) {
- return;
- }
- registerError(sign);
+ final IElementType tokenType = expression.getOperationTokenType();
+ if (!tokenType.equals(JavaTokenType.PLUS)) {
+ return;
+ }
+ final PsiType type = expression.getType();
+ if (!TypeUtils.isJavaLangString(type)) {
+ return;
+ }
+ if (!ControlFlowUtils.isInLoop(expression)) {
+ return;
+ }
+ if (ControlFlowUtils.isInExitStatement(expression)) {
+ return;
+ }
+ if (ExpressionUtils.isEvaluatedAtCompileTime(expression)) {
+ return;
+ }
+ if (containingStatementExits(expression)) {
+ return;
+ }
+ if (m_ignoreUnlessAssigned && !isAppendedRepeatedly(expression)) {
+ return;
+ }
+ final PsiJavaToken sign = expression.getTokenBeforeOperand(operands[1]);
+ registerError(sign);
}
@Override public void visitAssignmentExpression(
@@ -164,7 +161,7 @@ public class StringConcatenationInLoopsInspection extends BaseInspection {
private boolean isAppendedRepeatedly(PsiExpression expression) {
PsiElement parent = expression.getParent();
while (parent instanceof PsiParenthesizedExpression ||
- parent instanceof PsiBinaryExpression) {
+ parent instanceof PsiPolyadicExpression) {
parent = parent.getParent();
}
if (!(parent instanceof PsiAssignmentExpression)) {
@@ -197,4 +194,4 @@ public class StringConcatenationInLoopsInspection extends BaseInspection {
VariableAccessUtils.variableIsUsed(variable, rhs);
}
}
-}
\ No newline at end of file
+}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringVariableIsAppendedToVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringVariableIsAppendedToVisitor.java
index 7329dc39e36a..d50456a032a4 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringVariableIsAppendedToVisitor.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/performance/StringVariableIsAppendedToVisitor.java
@@ -56,8 +56,7 @@ class StringVariableIsAppendedToVisitor extends JavaRecursiveElementVisitor {
if (!variable.equals(referent)) {
return;
}
- final PsiJavaToken operationSign = assignment.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = assignment.getOperationTokenType();
if (tokenType.equals(JavaTokenType.PLUSEQ)) {
if (onlyWarnOnLoop && !ControlFlowUtils.isInLoop(assignment)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ArrayContentsAssignedVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ArrayContentsAssignedVisitor.java
index bfb6388299ac..4a867562af5b 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ArrayContentsAssignedVisitor.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ArrayContentsAssignedVisitor.java
@@ -57,8 +57,7 @@ class ArrayContentsAssignedVisitor extends JavaRecursiveElementVisitor {
return;
}
super.visitPrefixExpression(expression);
- final PsiJavaToken operationSign = expression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!(tokenType.equals(JavaTokenType.PLUSPLUS) ||
tokenType.equals(JavaTokenType.MINUSMINUS))){
return;
@@ -84,8 +83,7 @@ class ArrayContentsAssignedVisitor extends JavaRecursiveElementVisitor {
return;
}
super.visitPostfixExpression(expression);
- final PsiJavaToken operationSign = expression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!(tokenType.equals(JavaTokenType.PLUSPLUS) ||
tokenType.equals(JavaTokenType.MINUSMINUS))){
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/BoolUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/BoolUtils.java
index 047817b799ad..33779d815774 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/BoolUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/BoolUtils.java
@@ -29,8 +29,7 @@ public class BoolUtils {
return false;
}
final PsiPrefixExpression prefixExp = (PsiPrefixExpression) expression;
- final PsiJavaToken sign = prefixExp.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExp.getOperationTokenType();
return JavaTokenType.EXCL.equals(tokenType);
}
@@ -61,9 +60,8 @@ public class BoolUtils {
} else if (ComparisonUtils.isComparison(condition)) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) condition;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final String negatedComparison =
- ComparisonUtils.getNegatedComparison(sign);
+ final String negatedComparison =
+ ComparisonUtils.getNegatedComparison(binaryExpression.getOperationTokenType());
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
if (rhs == null) {
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ComparisonUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ComparisonUtils.java
index 831aed9c4f74..36de90adc697 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ComparisonUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ComparisonUtils.java
@@ -18,7 +18,6 @@ package com.siyeh.ig.psiutils;
import com.intellij.psi.JavaTokenType;
import com.intellij.psi.PsiBinaryExpression;
import com.intellij.psi.PsiExpression;
-import com.intellij.psi.PsiJavaToken;
import com.intellij.psi.tree.IElementType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -74,8 +73,7 @@ public class ComparisonUtils {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
return isComparisonOperation(tokenType);
}
@@ -83,9 +81,8 @@ public class ComparisonUtils {
return s_comparisonTokens.contains(tokenType);
}
- public static String getFlippedComparison(@NotNull PsiJavaToken token) {
- final IElementType tokenType = token.getTokenType();
- return s_swappedComparisons.get(tokenType);
+ public static String getFlippedComparison(IElementType tokenType) {
+ return s_swappedComparisons.get(tokenType);
}
public static boolean isEqualityComparison(
@@ -95,8 +92,7 @@ public class ComparisonUtils {
tokenType.equals(JavaTokenType.NE);
}
- public static String getNegatedComparison(@NotNull PsiJavaToken token) {
- final IElementType tokenType = token.getTokenType();
- return s_invertedComparisons.get(tokenType);
- }
+ public static String getNegatedComparison(IElementType tokenType) {
+ return s_invertedComparisons.get(tokenType);
+ }
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/EquivalenceChecker.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/EquivalenceChecker.java
index 44cc20fb78d2..fd0eb7fd6bc2 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/EquivalenceChecker.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/EquivalenceChecker.java
@@ -879,10 +879,8 @@ public class EquivalenceChecker{
private static boolean prefixExpressionsAreEquivalent(
@NotNull PsiPrefixExpression prefixExp1,
@NotNull PsiPrefixExpression prefixExp2){
- final PsiJavaToken sign1 = prefixExp1.getOperationSign();
- final PsiJavaToken sign2 = prefixExp2.getOperationSign();
- final IElementType tokenType1 = sign1.getTokenType();
- if(!tokenType1.equals(sign2.getTokenType())){
+ final IElementType tokenType1 = prefixExp1.getOperationTokenType();
+ if(!tokenType1.equals(prefixExp2.getOperationTokenType())){
return false;
}
final PsiExpression operand1 = prefixExp1.getOperand();
@@ -893,10 +891,8 @@ public class EquivalenceChecker{
private static boolean postfixExpressionsAreEquivalent(
@NotNull PsiPostfixExpression postfixExp1,
@NotNull PsiPostfixExpression postfixExp2){
- final PsiJavaToken sign1 = postfixExp1.getOperationSign();
- final PsiJavaToken sign2 = postfixExp2.getOperationSign();
- final IElementType tokenType1 = sign1.getTokenType();
- if(!tokenType1.equals(sign2.getTokenType())){
+ final IElementType tokenType1 = postfixExp1.getOperationTokenType();
+ if(!tokenType1.equals(postfixExp2.getOperationTokenType())){
return false;
}
final PsiExpression operand1 = postfixExp1.getOperand();
@@ -907,10 +903,8 @@ public class EquivalenceChecker{
private static boolean binaryExpressionsAreEquivalent(
@NotNull PsiBinaryExpression binaryExp1,
@NotNull PsiBinaryExpression binaryExp2){
- final PsiJavaToken sign1 = binaryExp1.getOperationSign();
- final PsiJavaToken sign2 = binaryExp2.getOperationSign();
- final IElementType tokenType1 = sign1.getTokenType();
- if(!tokenType1.equals(sign2.getTokenType())){
+ final IElementType tokenType1 = binaryExp1.getOperationTokenType();
+ if(!tokenType1.equals(binaryExp2.getOperationTokenType())){
return false;
}
final PsiExpression lhs1 = binaryExp1.getLOperand();
@@ -924,10 +918,8 @@ public class EquivalenceChecker{
private static boolean assignmentExpressionsAreEquivalent(
@NotNull PsiAssignmentExpression assignExp1,
@NotNull PsiAssignmentExpression assignExp2){
- final PsiJavaToken sign1 = assignExp1.getOperationSign();
- final PsiJavaToken sign2 = assignExp2.getOperationSign();
- final IElementType tokenType1 = sign1.getTokenType();
- if(!tokenType1.equals(sign2.getTokenType())){
+ final IElementType tokenType1 = assignExp1.getOperationTokenType();
+ if(!tokenType1.equals(assignExp2.getOperationTokenType())){
return false;
}
final PsiExpression lhs1 = assignExp1.getLExpression();
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ExpectedTypeUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ExpectedTypeUtils.java
index e4ed99576fc3..34bc5d381747 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ExpectedTypeUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ExpectedTypeUtils.java
@@ -157,8 +157,7 @@ public class ExpectedTypeUtils{
@Override public void visitBinaryExpression(
@NotNull PsiBinaryExpression binaryExpression) {
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
final PsiType type = binaryExpression.getType();
final PsiExpression rhs = binaryExpression.getROperand();
if (rhs == null) {
@@ -295,9 +294,7 @@ public class ExpectedTypeUtils{
@Override public void visitAssignmentExpression(
@NotNull PsiAssignmentExpression assignment){
final PsiExpression rExpression = assignment.getRExpression();
- final PsiJavaToken operationSign =
- assignment.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = assignment.getOperationTokenType();
final PsiExpression lExpression =
assignment.getLExpression();
final PsiType lType = lExpression.getType();
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ExpressionUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ExpressionUtils.java
index 4663d4a85e31..47f09f6e726f 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ExpressionUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ExpressionUtils.java
@@ -243,19 +243,17 @@ public class ExpressionUtils {
if (condition instanceof PsiPrefixExpression) {
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression)condition;
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
return tokenType.equals(JavaTokenType.EXCL);
} else if (condition instanceof PsiBinaryExpression) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)condition;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final PsiExpression lhs = binaryExpression.getLOperand();
+ final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
if (rhs == null) {
return false;
}
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (tokenType.equals(JavaTokenType.NE)) {
if (ignoreNegatedNullComparison) {
final String lhsText = lhs.getText();
@@ -307,8 +305,7 @@ public class ExpressionUtils {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)strippedExpression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (!JavaTokenType.PLUS.equals(tokenType) &&
!JavaTokenType.MINUS.equals(tokenType)) {
return false;
@@ -331,8 +328,7 @@ public class ExpressionUtils {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (tokenType.equals(JavaTokenType.LT) ||
tokenType.equals(JavaTokenType.LE)) {
final PsiExpression lhs = binaryExpression.getLOperand();
@@ -354,8 +350,7 @@ public class ExpressionUtils {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (tokenType.equals(JavaTokenType.GT) ||
tokenType.equals(JavaTokenType.GE)) {
final PsiExpression lhs = binaryExpression.getLOperand();
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/InstanceOfUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/InstanceOfUtils.java
index 18e59e367419..1b8168fa6e9b 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/InstanceOfUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/InstanceOfUtils.java
@@ -109,9 +109,7 @@ public class InstanceOfUtils {
@Override public void visitBinaryExpression(
PsiBinaryExpression expression) {
- final PsiJavaToken sign =
- expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (tokenType == JavaTokenType.ANDAND) {
checkExpression(expression.getLOperand());
if (agreeingInstanceof) {
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ParenthesesUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ParenthesesUtils.java
index bbfb0a75a10f..c4d14cc628ab 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ParenthesesUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ParenthesesUtils.java
@@ -126,11 +126,11 @@ public class ParenthesesUtils{
if(expression instanceof PsiPostfixExpression){
return POSTFIX_PRECEDENCE;
}
- if(expression instanceof PsiBinaryExpression){
- final PsiBinaryExpression binaryExpression =
- (PsiBinaryExpression)expression;
- final PsiJavaToken sign =
- binaryExpression.getOperationSign();
+ if(expression instanceof PsiPolyadicExpression){
+ final PsiPolyadicExpression binaryExpression =
+ (PsiPolyadicExpression)expression;
+ final IElementType sign =
+ binaryExpression.getOperationTokenType();
return getPrecedenceForBinaryOperator(sign);
}
if(expression instanceof PsiInstanceOfExpression){
@@ -214,9 +214,9 @@ public class ParenthesesUtils{
removeParensFromPostfixExpression(postfixExpression,
ignoreClarifyingParentheses);
}
- if(expression instanceof PsiBinaryExpression){
- final PsiBinaryExpression binaryExpression =
- (PsiBinaryExpression)expression;
+ if(expression instanceof PsiPolyadicExpression){
+ final PsiPolyadicExpression binaryExpression =
+ (PsiPolyadicExpression)expression;
removeParensFromBinaryExpression(binaryExpression,
ignoreClarifyingParentheses);
}
@@ -282,23 +282,22 @@ public class ParenthesesUtils{
removeParentheses(expression, ignoreClarifyingParentheses);
}
} else if(parentPrecedence == childPrecedence){
- if(parentExpression instanceof PsiBinaryExpression &&
- body instanceof PsiBinaryExpression){
- final PsiBinaryExpression parentBinaryExpression =
- (PsiBinaryExpression)parentExpression;
+ if(parentExpression instanceof PsiPolyadicExpression &&
+ body instanceof PsiPolyadicExpression){
+ final PsiPolyadicExpression parentBinaryExpression =
+ (PsiPolyadicExpression)parentExpression;
final IElementType parentOperator =
parentBinaryExpression.getOperationTokenType();
- final PsiBinaryExpression bodyBinaryExpression =
- (PsiBinaryExpression)body;
+ final PsiPolyadicExpression bodyBinaryExpression =
+ (PsiPolyadicExpression)body;
final IElementType bodyOperator =
bodyBinaryExpression.getOperationTokenType();
final PsiType parentType = parentBinaryExpression.getType();
final PsiType bodyType = body.getType();
if(parentType != null && parentType.equals(bodyType) &&
parentOperator.equals(bodyOperator)) {
- final PsiExpression rhs =
- parentBinaryExpression.getROperand();
- if (!PsiTreeUtil.isAncestor(rhs, body, true) ||
+ PsiExpression[] parentOperands = parentBinaryExpression.getOperands();
+ if (PsiTreeUtil.isAncestor(parentOperands[0], body, true) ||
isCommutativeBinaryOperator(bodyOperator)) {
// use addAfter() + delete() instead of replace() to
// workaround automatic insertion of parentheses by psi
@@ -327,8 +326,8 @@ public class ParenthesesUtils{
}
} else {
if (ignoreClarifyingParentheses &&
- parent instanceof PsiBinaryExpression &&
- (body instanceof PsiBinaryExpression ||
+ parent instanceof PsiPolyadicExpression &&
+ (body instanceof PsiPolyadicExpression ||
body instanceof PsiInstanceOfExpression)) {
removeParentheses(body, ignoreClarifyingParentheses);
} else {
@@ -366,15 +365,12 @@ public class ParenthesesUtils{
}
private static void removeParensFromBinaryExpression(
- @NotNull PsiBinaryExpression binaryExpression,
+ @NotNull PsiPolyadicExpression binaryExpression,
boolean ignoreClarifyingParentheses)
throws IncorrectOperationException {
- final PsiExpression lhs = binaryExpression.getLOperand();
- removeParentheses(lhs, ignoreClarifyingParentheses);
- final PsiExpression rhs = binaryExpression.getROperand();
- if (rhs != null) {
- removeParentheses(rhs, ignoreClarifyingParentheses);
- }
+ for (PsiExpression operand : binaryExpression.getOperands()) {
+ removeParentheses(operand, ignoreClarifyingParentheses);
+ }
}
private static void removeParensFromPostfixExpression(
@@ -495,12 +491,13 @@ public class ParenthesesUtils{
public static boolean areParenthesesNeeded(
PsiExpression expression, PsiElement parentExpression,
boolean ignoreClarifyingParentheses) {
- if (parentExpression instanceof PsiBinaryExpression) {
- final PsiBinaryExpression parentBinaryExpression =
- (PsiBinaryExpression) parentExpression;
- if (expression instanceof PsiBinaryExpression) {
- final PsiBinaryExpression childBinaryExpression =
- (PsiBinaryExpression)expression;
+ if (parentExpression instanceof PsiPolyadicExpression) {
+ final PsiPolyadicExpression parentBinaryExpression =
+ (PsiPolyadicExpression) parentExpression;
+ PsiExpression[] parentOperands = parentBinaryExpression.getOperands();
+ if (expression instanceof PsiPolyadicExpression) {
+ final PsiPolyadicExpression childBinaryExpression =
+ (PsiPolyadicExpression)expression;
final IElementType childOperator =
childBinaryExpression.getOperationTokenType();
final IElementType parentOperator =
@@ -517,24 +514,24 @@ public class ParenthesesUtils{
if (!parentType.equals(childType)) {
return true;
}
- if (PsiTreeUtil.isAncestor(parentBinaryExpression.getROperand(),
- expression, false)) {
+ if (!PsiTreeUtil.isAncestor(parentOperands[0],
+ expression, false)) {
if (!isCommutativeBinaryOperator(parentOperator)) {
return true;
}
}
return false;
} else if (expression instanceof PsiConditionalExpression) {
- if (PsiTreeUtil.isAncestor(parentBinaryExpression.getROperand(),
- expression, false)) {
+ if (!PsiTreeUtil.isAncestor(parentOperands[0],
+ expression, false)) {
return true;
}
}
} else if (parentExpression instanceof PsiPrefixExpression) {
- if (expression instanceof PsiBinaryExpression) {
+ if (expression instanceof PsiPolyadicExpression) {
return true;
}
}
return false;
}
-}
\ No newline at end of file
+}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/RecursionUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/RecursionUtils.java
index c55212e1bfdd..370fa0bf0b25 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/RecursionUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/RecursionUtils.java
@@ -298,8 +298,7 @@ public class RecursionUtils{
if(expressionDefinitelyRecurses(lhs, method)){
return true;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(tokenType.equals(JavaTokenType.ANDAND) ||
tokenType.equals(JavaTokenType.OROR)){
return false;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/SideEffectChecker.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/SideEffectChecker.java
index 61866da5f0da..0ff1c3395cc4 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/SideEffectChecker.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/SideEffectChecker.java
@@ -73,8 +73,7 @@ public class SideEffectChecker{
return;
}
super.visitPostfixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(tokenType.equals(JavaTokenType.PLUSPLUS) ||
tokenType.equals(JavaTokenType.MINUSMINUS)){
mayHaveSideEffects = true;
@@ -87,8 +86,7 @@ public class SideEffectChecker{
return;
}
super.visitPrefixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(tokenType.equals(JavaTokenType.PLUSPLUS) ||
tokenType.equals(JavaTokenType.MINUSMINUS)){
mayHaveSideEffects = true;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/SwitchUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/SwitchUtils.java
index 6c2fd4d6f77c..3c5fe00d77ac 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/SwitchUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/SwitchUtils.java
@@ -101,8 +101,7 @@ public class SwitchUtils{
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType operation = sign.getTokenType();
+ final IElementType operation = binaryExpression.getOperationTokenType();
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
if(operation.equals(JavaTokenType.OROR)){
@@ -143,8 +142,7 @@ public class SwitchUtils{
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType operation = sign.getTokenType();
+ final IElementType operation = binaryExpression.getOperationTokenType();
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
if(operation.equals(JavaTokenType.OROR)){
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableAccessUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableAccessUtils.java
index 3af1b91ae281..805b4894ac44 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableAccessUtils.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableAccessUtils.java
@@ -263,8 +263,7 @@ public class VariableAccessUtils{
if (expression instanceof PsiPrefixExpression) {
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression)expression;
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return false;
}
@@ -273,8 +272,7 @@ public class VariableAccessUtils{
} else if (expression instanceof PsiPostfixExpression) {
final PsiPostfixExpression postfixExpression =
(PsiPostfixExpression)expression;
- final PsiJavaToken sign = postfixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return false;
}
@@ -334,8 +332,7 @@ public class VariableAccessUtils{
if (expression instanceof PsiPrefixExpression) {
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression)expression;
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS)) {
return false;
}
@@ -344,8 +341,7 @@ public class VariableAccessUtils{
} else if (expression instanceof PsiPostfixExpression) {
final PsiPostfixExpression postfixExpression =
(PsiPostfixExpression)expression;
- final PsiJavaToken sign = postfixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS)) {
return false;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableAssignedVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableAssignedVisitor.java
index d9786e40c37b..e3bd1bad5cac 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableAssignedVisitor.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableAssignedVisitor.java
@@ -74,8 +74,7 @@ class VariableAssignedVisitor extends JavaRecursiveElementVisitor{
return;
}
super.visitPrefixExpression(prefixExpression);
- final PsiJavaToken operationSign = prefixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)){
return;
@@ -95,8 +94,7 @@ class VariableAssignedVisitor extends JavaRecursiveElementVisitor{
return;
}
super.visitPostfixExpression(postfixExpression);
- final PsiJavaToken operationSign = postfixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)){
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableValueUsedVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableValueUsedVisitor.java
index e3eaa104943b..9f583e75dc45 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableValueUsedVisitor.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/VariableValueUsedVisitor.java
@@ -72,9 +72,7 @@ class VariableValueUsedVisitor extends JavaRecursiveElementVisitor {
return;
}
super.visitPrefixExpression(prefixExpression);
- final PsiJavaToken operationSign =
- prefixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return;
@@ -99,9 +97,7 @@ class VariableValueUsedVisitor extends JavaRecursiveElementVisitor {
return;
}
super.visitPostfixExpression(postfixExpression);
- final PsiJavaToken operationSign =
- postfixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/ChainedEqualityInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/ChainedEqualityInspection.java
index 51a610e17b5b..f5964ab0c5ea 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/ChainedEqualityInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/ChainedEqualityInspection.java
@@ -18,7 +18,6 @@ package com.siyeh.ig.style;
import com.intellij.psi.JavaTokenType;
import com.intellij.psi.PsiBinaryExpression;
import com.intellij.psi.PsiExpression;
-import com.intellij.psi.PsiJavaToken;
import com.intellij.psi.tree.IElementType;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
@@ -71,8 +70,7 @@ public class ChainedEqualityInspection extends BaseInspection {
private static boolean isEqualityComparison(
@NotNull PsiBinaryExpression expression) {
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
return tokenType.equals(JavaTokenType.EQEQ) ||
tokenType.equals(JavaTokenType.NE);
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/ConstantOnLHSOfComparisonInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/ConstantOnLHSOfComparisonInspection.java
index d1a38e00189a..ef01c707cb45 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/ConstantOnLHSOfComparisonInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/ConstantOnLHSOfComparisonInspection.java
@@ -19,7 +19,6 @@ import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiBinaryExpression;
import com.intellij.psi.PsiExpression;
-import com.intellij.psi.PsiJavaToken;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
import com.siyeh.InspectionGadgetsBundle;
@@ -78,9 +77,8 @@ public class ConstantOnLHSOfComparisonInspection extends BaseInspection {
if (rhs == null) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final String flippedComparison =
- ComparisonUtils.getFlippedComparison(sign);
+ final String flippedComparison =
+ ComparisonUtils.getFlippedComparison(expression.getOperationTokenType());
if (flippedComparison == null) {
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/ConstantOnRHSOfComparisonInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/ConstantOnRHSOfComparisonInspection.java
index 518ffacfb650..dcc6d0f2e52f 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/ConstantOnRHSOfComparisonInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/ConstantOnRHSOfComparisonInspection.java
@@ -19,7 +19,6 @@ import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiBinaryExpression;
import com.intellij.psi.PsiExpression;
-import com.intellij.psi.PsiJavaToken;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
import com.siyeh.InspectionGadgetsBundle;
@@ -78,9 +77,8 @@ public class ConstantOnRHSOfComparisonInspection extends BaseInspection {
if (rhs == null) {
return;
}
- final PsiJavaToken sign = expression.getOperationSign();
- final String flippedComparison =
- ComparisonUtils.getFlippedComparison(sign);
+ final String flippedComparison =
+ ComparisonUtils.getFlippedComparison(expression.getOperationTokenType());
if (flippedComparison == null) {
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/ListIndexOfReplaceableByContainsInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/ListIndexOfReplaceableByContainsInspection.java
index 4a312fac4cdf..5d1dc5c4f385 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/ListIndexOfReplaceableByContainsInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/ListIndexOfReplaceableByContainsInspection.java
@@ -47,17 +47,16 @@ public class ListIndexOfReplaceableByContainsInspection
public String buildErrorString(Object... infos) {
final PsiBinaryExpression expression = (PsiBinaryExpression)infos[0];
final PsiExpression lhs = expression.getLOperand();
- final PsiJavaToken sign = expression.getOperationSign();
- final String text;
+ final String text;
if (lhs instanceof PsiMethodCallExpression) {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)lhs;
- text = createContainsExpressionText(callExpression, sign, false);
+ text = createContainsExpressionText(callExpression, false, expression.getOperationTokenType());
} else {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)expression.getROperand();
assert callExpression != null;
- text = createContainsExpressionText(callExpression, sign, true);
+ text = createContainsExpressionText(callExpression, true, expression.getOperationTokenType());
}
return InspectionGadgetsBundle.message(
"indexof.replaceable.by.contains.problem.descriptor", text);
@@ -79,20 +78,19 @@ public class ListIndexOfReplaceableByContainsInspection
(PsiBinaryExpression)descriptor.getPsiElement();
final PsiExpression lhs = expression.getLOperand();
final PsiExpression rhs = expression.getROperand();
- final PsiJavaToken sign = expression.getOperationSign();
- final String newExpressionText;
+ final String newExpressionText;
if (lhs instanceof PsiMethodCallExpression) {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)lhs;
newExpressionText =
- createContainsExpressionText(callExpression, sign,
- false);
+ createContainsExpressionText(callExpression,
+ false, expression.getOperationTokenType());
} else {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)rhs;
assert callExpression != null;
newExpressionText =
- createContainsExpressionText(callExpression, sign, true);
+ createContainsExpressionText(callExpression, true, expression.getOperationTokenType());
}
replaceExpression(expression, newExpressionText);
}
@@ -105,10 +103,8 @@ public class ListIndexOfReplaceableByContainsInspection
}
static String createContainsExpressionText(
- @NotNull PsiMethodCallExpression call,
- @NotNull PsiJavaToken sign,
- boolean flipped) {
- final IElementType tokenType = sign.getTokenType();
+ @NotNull PsiMethodCallExpression call,
+ boolean flipped, IElementType tokenType) {
final PsiReferenceExpression methodExpression =
call.getMethodExpression();
final PsiExpression qualifierExpression =
@@ -154,21 +150,19 @@ public class ListIndexOfReplaceableByContainsInspection
}
final PsiExpression lhs = expression.getLOperand();
if (lhs instanceof PsiMethodCallExpression) {
- final PsiJavaToken sign = expression.getOperationSign();
- if (canBeReplacedByContains(lhs, sign, rhs, false)) {
+ if (canBeReplacedByContains(lhs, rhs, false, expression.getOperationTokenType())) {
registerError(expression, expression);
}
} else if (rhs instanceof PsiMethodCallExpression) {
- final PsiJavaToken sign = expression.getOperationSign();
- if (canBeReplacedByContains(rhs, sign, lhs, true)) {
+ if (canBeReplacedByContains(rhs, lhs, true, expression.getOperationTokenType())) {
registerError(expression, expression);
}
}
}
private static boolean canBeReplacedByContains(
- PsiExpression lhs, PsiJavaToken sign,
- PsiExpression rhs, boolean flipped) {
+ PsiExpression lhs,
+ PsiExpression rhs, boolean flipped, IElementType tokenType) {
final PsiMethodCallExpression callExpression =
(PsiMethodCallExpression)lhs;
if (!isIndexOfCall(callExpression)) {
@@ -181,8 +175,7 @@ public class ListIndexOfReplaceableByContainsInspection
}
final Integer integer = (Integer)object;
final int constant = integer.intValue();
- final IElementType tokenType = sign.getTokenType();
- if (flipped) {
+ if (flipped) {
if (constant == -1 && (JavaTokenType.NE.equals(tokenType) ||
JavaTokenType.LT.equals(tokenType) ||
JavaTokenType.EQEQ.equals(tokenType) ||
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java
index 76f642b3a54b..9855aba7cfa2 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java
@@ -112,8 +112,8 @@ public class UnnecessaryParenthesesInspection extends BaseInspection {
final int childPrecedence = ParenthesesUtils.getPrecedence(child);
if (parentPrecedence > childPrecedence) {
if (ignoreClarifyingParentheses) {
- if (parent instanceof PsiBinaryExpression &&
- child instanceof PsiBinaryExpression) {
+ if (parent instanceof PsiPolyadicExpression &&
+ child instanceof PsiPolyadicExpression) {
return;
} else if (child instanceof PsiInstanceOfExpression) {
return;
@@ -143,4 +143,4 @@ public class UnnecessaryParenthesesInspection extends BaseInspection {
super.visitParenthesizedExpression(expression);
}
}
-}
\ No newline at end of file
+}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/ui/ExternalizableStringSet.java b/plugins/InspectionGadgets/src/com/siyeh/ig/ui/ExternalizableStringSet.java
index ffff4b91767c..3498c60e6fca 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/ui/ExternalizableStringSet.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/ui/ExternalizableStringSet.java
@@ -25,6 +25,15 @@ import org.jetbrains.annotations.NonNls;
import java.util.List;
+/**
+ * Always assign instances of this class to a final field to prevent an InstantiationException
+ * from DefaultJDOMExternalizer.
+ *
+ * The constructor of this class takes parameters. This means an instance of this class
+ * cannot be constructed by {@link com.intellij.openapi.util.DefaultJDOMExternalizer}.
+ * If instances of this class are assigned to a final field, DefaultJDOMExternalizer will
+ * omit the construction of a new instance and prevent the problem.
+ */
@SuppressWarnings({"HardCodedStringLiteral"})
public class ExternalizableStringSet extends OrderedSet
implements JDOMExternalizable {
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/string_concatenation_in_loops/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/string_concatenation_in_loops/expected.xml
index d52bd4acd226..4b3ba72440f5 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/string_concatenation_in_loops/expected.xml
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/string_concatenation_in_loops/expected.xml
@@ -8,20 +8,6 @@
String concatenation <code>+</code> in loop #loc
-
- StringConcatenationInLoop.java
- 14
- String concatenation in loop
- String concatenation <code>+</code> in loop #loc
-
-
-
- StringConcatenationInLoop.java
- 15
- String concatenation in loop
- String concatenation <code>+</code> in loop #loc
-
-
StringConcatenationInLoop.java
15
@@ -43,4 +29,4 @@
String concatenation <code>+=</code> in loop #loc
-
\ No newline at end of file
+
diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/ConcatenationInjector.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/ConcatenationInjector.java
index 9367ae2dd04a..67689d6fe807 100644
--- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/ConcatenationInjector.java
+++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/ConcatenationInjector.java
@@ -407,7 +407,7 @@ public class ConcatenationInjector implements ConcatenationAwareInjector {
return true;
}
}
- else if (parent instanceof PsiBinaryExpression) {
+ else if (parent instanceof PsiBinaryExpression || parent instanceof PsiPolyadicExpression) {
return true;
}
return false;
diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/util/ContextComputationProcessor.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/util/ContextComputationProcessor.java
index 2bc55e1e6fa7..7fedc7cdb25e 100644
--- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/util/ContextComputationProcessor.java
+++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/util/ContextComputationProcessor.java
@@ -82,6 +82,13 @@ public class ContextComputationProcessor {
collectOperands(binaryExpression.getLOperand(), result, unparsable);
collectOperands(binaryExpression.getROperand(), result, unparsable);
}
+ else if (expression instanceof PsiPolyadicExpression &&
+ ((PsiPolyadicExpression)expression).getOperationTokenType() == JavaTokenType.PLUS) {
+ final PsiPolyadicExpression binaryExpression = (PsiPolyadicExpression)expression;
+ for (PsiExpression operand : binaryExpression.getOperands()) {
+ collectOperands(operand, result, unparsable);
+ }
+ }
else if (expression instanceof PsiAssignmentExpression &&
((PsiAssignmentExpression)expression).getOperationTokenType() == JavaTokenType.PLUSEQ) {
unparsable.set(Boolean.TRUE);
@@ -112,7 +119,7 @@ public class ContextComputationProcessor {
PsiElement target = host;
PsiElement parent = target.getParent();
for (; parent != null; target = parent, parent = target.getParent()) {
- if (parent instanceof PsiBinaryExpression) continue;
+ if (parent instanceof PsiPolyadicExpression) continue;
if (parent instanceof PsiParenthesizedExpression) continue;
if (parent instanceof PsiConditionalExpression && ((PsiConditionalExpression)parent).getCondition() != target) continue;
if (parent instanceof PsiArrayInitializerMemberValue) continue;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/base/Intention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/base/Intention.java
index 124462d50e5d..e6f417a34a14 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/base/Intention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/base/Intention.java
@@ -91,9 +91,8 @@ public abstract class Intention extends PsiElementBaseIntentionAction {
} else if(ComparisonUtils.isComparison(newExpression)){
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) newExpression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final String negatedComparison =
- ComparisonUtils.getNegatedComparison(sign);
+ final String negatedComparison =
+ ComparisonUtils.getNegatedComparison(binaryExpression.getOperationTokenType());
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
assert rhs != null;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/BooleanLiteralEqualityPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/BooleanLiteralEqualityPredicate.java
index 00445ca5c34a..246c44421f57 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/BooleanLiteralEqualityPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/BooleanLiteralEqualityPredicate.java
@@ -28,8 +28,7 @@ class BooleanLiteralEqualityPredicate implements PsiElementPredicate{
return false;
}
final PsiBinaryExpression expression = (PsiBinaryExpression) element;
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.EQEQ) &&
!tokenType.equals(JavaTokenType.NE)){
return false;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/ConjunctionPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/ConjunctionPredicate.java
index 635936e29d59..fc5bfc3598de 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/ConjunctionPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/ConjunctionPredicate.java
@@ -18,7 +18,6 @@ package com.siyeh.ipp.bool;
import com.intellij.psi.JavaTokenType;
import com.intellij.psi.PsiBinaryExpression;
import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiJavaToken;
import com.intellij.psi.tree.IElementType;
import com.siyeh.ipp.base.PsiElementPredicate;
import com.siyeh.ipp.psiutils.ErrorUtil;
@@ -30,8 +29,7 @@ class ConjunctionPredicate implements PsiElementPredicate{
return false;
}
final PsiBinaryExpression expression = (PsiBinaryExpression) element;
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.ANDAND) &&
!tokenType.equals(JavaTokenType.OROR)) {
return false;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/DemorgansIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/DemorgansIntention.java
index df35c28338ae..0e9479cfbe01 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/DemorgansIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/DemorgansIntention.java
@@ -31,8 +31,7 @@ public class DemorgansIntention extends MutablyNamedIntention {
protected String getTextForElement(PsiElement element) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)element;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (tokenType.equals(JavaTokenType.ANDAND)) {
return IntentionPowerPackBundle.message("demorgans.intention.name1");
} else {
@@ -49,8 +48,7 @@ public class DemorgansIntention extends MutablyNamedIntention {
throws IncorrectOperationException {
PsiBinaryExpression exp =
(PsiBinaryExpression)element;
- final PsiJavaToken sign = exp.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
PsiElement parent = exp.getParent();
while (isConjunctionExpression(parent, tokenType)) {
exp = (PsiBinaryExpression)parent;
@@ -106,9 +104,8 @@ public class DemorgansIntention extends MutablyNamedIntention {
} else if (ComparisonUtils.isComparison(condition)) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)condition;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final String negatedComparison =
- ComparisonUtils.getNegatedComparison(sign);
+ final String negatedComparison =
+ ComparisonUtils.getNegatedComparison(binaryExpression.getOperationTokenType());
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
assert rhs != null;
@@ -127,8 +124,7 @@ public class DemorgansIntention extends MutablyNamedIntention {
return false;
}
final PsiBinaryExpression binExp = (PsiBinaryExpression)exp;
- final PsiJavaToken sign = binExp.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binExp.getOperationTokenType();
return tokenType.equals(conjunctionType);
}
}
\ No newline at end of file
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/FlipConjunctionIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/FlipConjunctionIntention.java
index 41f0d24f8e93..c9221f48aa96 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/FlipConjunctionIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/FlipConjunctionIntention.java
@@ -43,8 +43,7 @@ public class FlipConjunctionIntention extends MutablyNamedIntention {
PsiExpression exp = (PsiExpression)element;
final PsiBinaryExpression binaryExpression = (PsiBinaryExpression)exp;
assert binaryExpression != null;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType conjunctionType = sign.getTokenType();
+ final IElementType conjunctionType = binaryExpression.getOperationTokenType();
PsiElement parent = exp.getParent();
while (isConjunctionExpression(parent, conjunctionType)) {
exp = (PsiExpression)parent;
@@ -83,8 +82,7 @@ public class FlipConjunctionIntention extends MutablyNamedIntention {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)element;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
return tokenType.equals(conjunctionType);
}
}
\ No newline at end of file
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/NegateComparisonIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/NegateComparisonIntention.java
index 3b17945314b1..3c45329aaca2 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/NegateComparisonIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/NegateComparisonIntention.java
@@ -36,7 +36,7 @@ public class NegateComparisonIntention extends MutablyNamedIntention {
final PsiJavaToken sign = exp.getOperationSign();
operatorText = sign.getText();
negatedOperatorText =
- ComparisonUtils.getNegatedComparison(sign);
+ ComparisonUtils.getNegatedComparison(sign.getTokenType());
}
if (operatorText.equals(negatedOperatorText)) {
return IntentionPowerPackBundle.message(
@@ -59,9 +59,8 @@ public class NegateComparisonIntention extends MutablyNamedIntention {
(PsiBinaryExpression)element;
final PsiExpression lhs = expression.getLOperand();
final PsiExpression rhs = expression.getROperand();
- final PsiJavaToken sign = expression.getOperationSign();
- final String negatedOperator =
- ComparisonUtils.getNegatedComparison(sign);
+ final String negatedOperator =
+ ComparisonUtils.getNegatedComparison(expression.getOperationTokenType());
final String lhsText = lhs.getText();
assert rhs != null;
final String rhsText = rhs.getText();
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/RemoveBooleanEqualityIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/RemoveBooleanEqualityIntention.java
index c9f989738d2b..9203d27dfc64 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/RemoveBooleanEqualityIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/bool/RemoveBooleanEqualityIntention.java
@@ -44,8 +44,7 @@ public class RemoveBooleanEqualityIntention extends MutablyNamedIntention {
final PsiBinaryExpression exp =
(PsiBinaryExpression)element;
assert exp != null;
- final PsiJavaToken sign = exp.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
final boolean isEquals = JavaTokenType.EQEQ.equals(tokenType);
final PsiExpression lhs = exp.getLOperand();
@NonNls final String lhsText = lhs.getText();
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/chartostring/CharToStringPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/chartostring/CharToStringPredicate.java
index ab55eb6c7dcc..9a1689a2b5c6 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/chartostring/CharToStringPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/chartostring/CharToStringPredicate.java
@@ -59,8 +59,7 @@ class CharToStringPredicate implements PsiElementPredicate{
} else if(parent instanceof PsiAssignmentExpression){
final PsiAssignmentExpression parentExpression =
(PsiAssignmentExpression) parent;
- final PsiJavaToken sign = parentExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = parentExpression.getOperationTokenType();
if(!JavaTokenType.PLUSEQ.equals(tokenType)){
return false;
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/chartostring/StringToCharPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/chartostring/StringToCharPredicate.java
index 510b6bbce99f..825aa94e7f09 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/chartostring/StringToCharPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/chartostring/StringToCharPredicate.java
@@ -77,8 +77,7 @@ class StringToCharPredicate implements PsiElementPredicate{
} else if(parent instanceof PsiAssignmentExpression){
final PsiAssignmentExpression parentExpression =
(PsiAssignmentExpression) parent;
- final PsiJavaToken sign = parentExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = parentExpression.getOperationTokenType();
if(!JavaTokenType.PLUSEQ.equals(tokenType)){
return false;
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/Jdk5StringConcatenationPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/Jdk5StringConcatenationPredicate.java
index e289206334d3..85aaced800d8 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/Jdk5StringConcatenationPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/Jdk5StringConcatenationPredicate.java
@@ -15,17 +15,14 @@
*/
package com.siyeh.ipp.concatenation;
-import com.intellij.psi.PsiArrayInitializerMemberValue;
-import com.intellij.psi.PsiBinaryExpression;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiNameValuePair;
+import com.intellij.psi.*;
+import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.siyeh.ipp.base.PsiElementPredicate;
import com.siyeh.ipp.psiutils.ConcatenationUtils;
import com.siyeh.ipp.psiutils.ErrorUtil;
class Jdk5StringConcatenationPredicate implements PsiElementPredicate {
-
public boolean satisfiedBy(PsiElement element) {
if (!PsiUtil.isLanguageLevel5OrHigher(element)) {
return false;
@@ -40,14 +37,6 @@ class Jdk5StringConcatenationPredicate implements PsiElementPredicate {
}
private static boolean isInsideAnnotation(PsiElement element) {
- for (int i = 0; i < 20 && element instanceof PsiBinaryExpression; i++) {
- // optimization: don't check deep string concatenations more than 20 levels up.
- element = element.getParent();
- if (element instanceof PsiNameValuePair ||
- element instanceof PsiArrayInitializerMemberValue) {
- return true;
- }
- }
- return false;
+ return PsiTreeUtil.getParentOfType(element, PsiNameValuePair.class, PsiArrayInitializerMemberValue.class) != null;
}
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/ReplaceConcatenationWithFormatStringIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/ReplaceConcatenationWithFormatStringIntention.java
index 7693623a9974..95f628014c79 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/ReplaceConcatenationWithFormatStringIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/ReplaceConcatenationWithFormatStringIntention.java
@@ -15,8 +15,8 @@
*/
package com.siyeh.ipp.concatenation;
-import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
+import com.intellij.psi.util.PsiConcatenationUtil;
import com.intellij.util.IncorrectOperationException;
import com.siyeh.ipp.base.Intention;
import com.siyeh.ipp.base.PsiElementPredicate;
@@ -38,11 +38,11 @@ public class ReplaceConcatenationWithFormatStringIntention
@Override
protected void processIntention(@NotNull PsiElement element)
throws IncorrectOperationException {
- PsiBinaryExpression expression =
- (PsiBinaryExpression)element;
+ PsiPolyadicExpression expression =
+ (PsiPolyadicExpression)element;
PsiElement parent = expression.getParent();
while (ConcatenationUtils.isConcatenation(parent)) {
- expression = (PsiBinaryExpression)parent;
+ expression = (PsiPolyadicExpression)parent;
if (expression == null) {
return;
}
@@ -51,7 +51,7 @@ public class ReplaceConcatenationWithFormatStringIntention
final StringBuilder formatString = new StringBuilder();
final List formatParameters = new ArrayList();
- buildFormatString(expression, formatString, formatParameters);
+ PsiConcatenationUtil.buildFormatString(expression, formatString, formatParameters, true);
if (replaceWithPrintfExpression(expression, formatString,
formatParameters)) {
return;
@@ -69,7 +69,7 @@ public class ReplaceConcatenationWithFormatStringIntention
}
private static boolean replaceWithPrintfExpression(
- PsiBinaryExpression expression,
+ PsiExpression expression,
CharSequence formatString,
List formatParameters)
throws IncorrectOperationException {
@@ -129,49 +129,4 @@ public class ReplaceConcatenationWithFormatStringIntention
return true;
}
- private static void buildFormatString(
- PsiExpression expression, StringBuilder formatString,
- List formatParameters) {
- if (expression instanceof PsiLiteralExpression) {
- final PsiLiteralExpression literalExpression =
- (PsiLiteralExpression) expression;
- final String text = String.valueOf(literalExpression.getValue());
- final String formatText =
- StringUtil.escapeStringCharacters(text)
- .replace("%", "%%").replace("\\'", "'");
- formatString.append(formatText);
- } else if (expression instanceof PsiBinaryExpression) {
- final PsiType type = expression.getType();
- if (type != null && type.equalsToText("java.lang.String")) {
- final PsiBinaryExpression binaryExpression =
- (PsiBinaryExpression) expression;
- final PsiExpression lhs = binaryExpression.getLOperand();
- buildFormatString(lhs, formatString, formatParameters);
- final PsiExpression rhs = binaryExpression.getROperand();
- if (rhs != null) {
- buildFormatString(rhs, formatString, formatParameters);
- }
- } else {
- addFormatParameter(expression, formatString, formatParameters);
- }
- } else {
- addFormatParameter(expression, formatString, formatParameters);
- }
- }
-
- private static void addFormatParameter(PsiExpression expression,
- StringBuilder formatString,
- List formatParameters) {
- final PsiType type = expression.getType();
- if (type != null &&
- (type.equalsToText("long") ||
- type.equalsToText("int") ||
- type.equalsToText("java.lang.Long") ||
- type.equalsToText("java.lang.Integer"))) {
- formatString.append("%d");
- } else {
- formatString.append("%s");
- }
- formatParameters.add(expression);
- }
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/StringConcatPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/StringConcatPredicate.java
index ed99620217a3..9b7fb13af37f 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/StringConcatPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/StringConcatPredicate.java
@@ -39,8 +39,7 @@ class StringConcatPredicate implements PsiElementPredicate{
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) parent;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.PLUS)){
return false;
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/equality/ObjectEqualityPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/equality/ObjectEqualityPredicate.java
index 2848bfcfa047..1248421fed28 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/equality/ObjectEqualityPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/equality/ObjectEqualityPredicate.java
@@ -28,8 +28,7 @@ class ObjectEqualityPredicate implements PsiElementPredicate{
return false;
}
final PsiBinaryExpression expression = (PsiBinaryExpression) element;
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.NE) &&
!tokenType.equals(JavaTokenType.EQEQ)){
return false;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/equality/ReplaceEqualityWithEqualsIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/equality/ReplaceEqualityWithEqualsIntention.java
index f89b9b9f57c6..256eed19be99 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/equality/ReplaceEqualityWithEqualsIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/equality/ReplaceEqualityWithEqualsIntention.java
@@ -50,8 +50,7 @@ public class ReplaceEqualityWithEqualsIntention extends Intention {
if (strippedRhs == null) {
return;
}
- final PsiJavaToken operationSign = exp.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
@NonNls final String expString;
if (tokenType.equals(JavaTokenType.EQEQ)) {
if (ParenthesesUtils.getPrecedence(strippedLhs) >
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/CreateAssertIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/CreateAssertIntention.java
index 5826ec10e48a..0258d3f9fcc2 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/CreateAssertIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/CreateAssertIntention.java
@@ -162,8 +162,7 @@ public class CreateAssertIntention extends Intention {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
return JavaTokenType.EQEQ.equals(tokenType);
}
@@ -173,8 +172,7 @@ public class CreateAssertIntention extends Intention {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (!JavaTokenType.EQEQ.equals(tokenType)) {
return false;
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/AssignmentExpressionReplaceableWithOperatorAssigment.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/AssignmentExpressionReplaceableWithOperatorAssigment.java
index 2d9a13704968..7e11cd293801 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/AssignmentExpressionReplaceableWithOperatorAssigment.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/AssignmentExpressionReplaceableWithOperatorAssigment.java
@@ -32,8 +32,7 @@ class AssignmentExpressionReplaceableWithOperatorAssigment
}
final PsiAssignmentExpression assignment =
(PsiAssignmentExpression) element;
- final PsiJavaToken sign = assignment.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = assignment.getOperationTokenType();
if(!JavaTokenType.EQ.equals(tokenType)){
return false;
}
@@ -51,8 +50,7 @@ class AssignmentExpressionReplaceableWithOperatorAssigment
if(rhsRhs == null){
return false;
}
- final PsiJavaToken operatorSign = binaryRhs.getOperationSign();
- final IElementType rhsTokenType = operatorSign.getTokenType();
+ final IElementType rhsTokenType = binaryRhs.getOperationTokenType();
if(JavaTokenType.OROR.equals(rhsTokenType) ||
JavaTokenType.ANDAND.equals(rhsTokenType) ||
JavaTokenType.EQEQ.equals(rhsTokenType) ||
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntention.java
index 872ce7470d83..9895379e5ecb 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntention.java
@@ -82,9 +82,8 @@ public class ReplaceOperatorAssignmentWithAssignmentIntention
if (rhs instanceof PsiBinaryExpression) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)rhs;
- final PsiJavaToken javaToken = binaryExpression.getOperationSign();
- final int precedence1 =
- ParenthesesUtils.getPrecedenceForBinaryOperator(javaToken);
+ final int precedence1 =
+ ParenthesesUtils.getPrecedenceForBinaryOperator(binaryExpression.getOperationTokenType());
final IElementType signTokenType = sign.getTokenType();
final IElementType newOperatorToken = tokenMap.get(signTokenType);
final int precedence2 =
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/parenthesis/UnnecessaryParenthesesPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/parenthesis/UnnecessaryParenthesesPredicate.java
index 6c67b87c979c..4c6b92d825f5 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/parenthesis/UnnecessaryParenthesesPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/parenthesis/UnnecessaryParenthesesPredicate.java
@@ -53,9 +53,7 @@ class UnnecessaryParenthesesPredicate implements PsiElementPredicate{
final PsiJavaToken parentSign =
binaryExpression.getOperationSign();
final IElementType parentOperator = parentSign.getTokenType();
- final PsiJavaToken childSign =
- ((PsiBinaryExpression) body).getOperationSign();
- final IElementType childOperator = childSign.getTokenType();
+ final IElementType childOperator = ((PsiBinaryExpression)body).getOperationTokenType();
if(!parentOperator.equals(childOperator)){
return false;
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/BoolUtils.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/BoolUtils.java
index 80b7e93b1dc6..2c176c54c69b 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/BoolUtils.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/BoolUtils.java
@@ -32,8 +32,7 @@ public class BoolUtils{
if(ancestor.getParent() instanceof PsiPrefixExpression){
final PsiPrefixExpression prefixAncestor =
(PsiPrefixExpression) ancestor.getParent();
- final PsiJavaToken sign = prefixAncestor.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixAncestor.getOperationTokenType();
if(tokenType.equals(JavaTokenType.EXCL)){
return true;
}
@@ -50,8 +49,7 @@ public class BoolUtils{
if(ancestor.getParent() instanceof PsiPrefixExpression){
final PsiPrefixExpression prefixAncestor =
(PsiPrefixExpression) ancestor.getParent();
- final PsiJavaToken sign = prefixAncestor.getOperationSign();
- if(JavaTokenType.EXCL.equals(sign.getTokenType())){
+ if(JavaTokenType.EXCL.equals(prefixAncestor.getOperationTokenType())){
return prefixAncestor;
}
}
@@ -63,8 +61,7 @@ public class BoolUtils{
return false;
}
final PsiPrefixExpression prefixExp = (PsiPrefixExpression) exp;
- final PsiJavaToken sign = prefixExp.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExp.getOperationTokenType();
return tokenType.equals(JavaTokenType.EXCL);
}
@@ -109,9 +106,8 @@ public class BoolUtils{
} else if(ComparisonUtils.isComparison(condition)){
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) condition;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final String negatedComparison =
- ComparisonUtils.getNegatedComparison(sign);
+ final String negatedComparison =
+ ComparisonUtils.getNegatedComparison(binaryExpression.getOperationTokenType());
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
if(rhs == null){
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ComparisonUtils.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ComparisonUtils.java
index e3261ddfd04d..0acf41fa73ed 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ComparisonUtils.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ComparisonUtils.java
@@ -86,11 +86,6 @@ public class ComparisonUtils{
return flippedComparisons.get(text);
}
- public static String getNegatedComparison(@NotNull PsiJavaToken sign){
- final IElementType tokenType = sign.getTokenType();
- return getNegatedComparison(tokenType);
- }
-
public static String getNegatedComparison(IElementType tokenType){
return negatedComparisons.get(tokenType);
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ConcatenationUtils.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ConcatenationUtils.java
index 3c579e6d370c..3d4d72511f91 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ConcatenationUtils.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ConcatenationUtils.java
@@ -25,31 +25,27 @@ public class ConcatenationUtils{
}
public static boolean isConcatenation(PsiElement element){
- if(!(element instanceof PsiBinaryExpression)){
+ if(!(element instanceof PsiPolyadicExpression)){
return false;
}
- final PsiBinaryExpression expression = (PsiBinaryExpression) element;
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final PsiPolyadicExpression expression = (PsiPolyadicExpression) element;
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.PLUS)){
return false;
}
- final PsiExpression rhs = expression.getROperand();
- if(rhs == null){
- return false;
- }
+ PsiExpression[] operands = expression.getOperands();
+ if (operands.length <= 1) return false;
final PsiType type = expression.getType();
if(type == null){
- final PsiExpression lhs = expression.getLOperand();
- return hasStringType(lhs) || hasStringType(rhs);
+ for (PsiExpression operand : operands) {
+ if (hasStringType(operand)) return true;
+ }
+ return false;
}
return type.equalsToText("java.lang.String");
}
private static boolean hasStringType(PsiExpression expression) {
- if (expression == null) {
- return false;
- }
final PsiType type = expression.getType();
return type != null && type.equalsToText("java.lang.String");
}
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/EquivalenceChecker.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/EquivalenceChecker.java
index 77ff76899cec..9e8582ab05d4 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/EquivalenceChecker.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/EquivalenceChecker.java
@@ -794,10 +794,8 @@ public class EquivalenceChecker{
private static boolean prefixExpressionsAreEquivalent(
@NotNull PsiPrefixExpression prefixExpression1,
@NotNull PsiPrefixExpression prefixExpression2){
- final PsiJavaToken sign1 = prefixExpression1.getOperationSign();
- final PsiJavaToken sign2 = prefixExpression2.getOperationSign();
- final IElementType tokenType1 = sign1.getTokenType();
- if(!tokenType1.equals(sign2.getTokenType())){
+ final IElementType tokenType1 = prefixExpression1.getOperationTokenType();
+ if(!tokenType1.equals(prefixExpression2.getOperationTokenType())){
return false;
}
final PsiExpression operand1 = prefixExpression1.getOperand();
@@ -808,10 +806,8 @@ public class EquivalenceChecker{
private static boolean postfixExpressionsAreEquivalent(
@NotNull PsiPostfixExpression postfixExpression1,
@NotNull PsiPostfixExpression postfixExpression2){
- final PsiJavaToken sign1 = postfixExpression1.getOperationSign();
- final PsiJavaToken sign2 = postfixExpression2.getOperationSign();
- final IElementType tokenType1 = sign1.getTokenType();
- if(!tokenType1.equals(sign2.getTokenType())){
+ final IElementType tokenType1 = postfixExpression1.getOperationTokenType();
+ if(!tokenType1.equals(postfixExpression2.getOperationTokenType())){
return false;
}
final PsiExpression operand1 = postfixExpression1.getOperand();
@@ -822,10 +818,8 @@ public class EquivalenceChecker{
private static boolean binaryExpressionsAreEquivalent(
@NotNull PsiBinaryExpression binaryExpression1,
@NotNull PsiBinaryExpression binaryExpression2){
- final PsiJavaToken sign1 = binaryExpression1.getOperationSign();
- final PsiJavaToken sign2 = binaryExpression2.getOperationSign();
- final IElementType tokenType1 = sign1.getTokenType();
- if(!tokenType1.equals(sign2.getTokenType())){
+ final IElementType tokenType1 = binaryExpression1.getOperationTokenType();
+ if(!tokenType1.equals(binaryExpression2.getOperationTokenType())){
return false;
}
final PsiExpression lhs1 = binaryExpression1.getLOperand();
@@ -839,10 +833,8 @@ public class EquivalenceChecker{
private static boolean assignmentExpressionsAreEquivalent(
@NotNull PsiAssignmentExpression assignmentExpression1,
@NotNull PsiAssignmentExpression assignmentExpression2){
- final PsiJavaToken sign1 = assignmentExpression1.getOperationSign();
- final PsiJavaToken sign2 = assignmentExpression2.getOperationSign();
- final IElementType tokenType1 = sign1.getTokenType();
- if(!tokenType1.equals(sign2.getTokenType())){
+ final IElementType tokenType1 = assignmentExpression1.getOperationTokenType();
+ if(!tokenType1.equals(assignmentExpression2.getOperationTokenType())){
return false;
}
final PsiExpression lhs1 = assignmentExpression1.getLExpression();
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ParenthesesUtils.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ParenthesesUtils.java
index 5a19a4fa4c07..3535a0f2d033 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ParenthesesUtils.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/ParenthesesUtils.java
@@ -129,9 +129,7 @@ public class ParenthesesUtils{
if(expression instanceof PsiBinaryExpression){
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)expression;
- final PsiJavaToken sign =
- binaryExpression.getOperationSign();
- return getPrecedenceForBinaryOperator(sign);
+ return getPrecedenceForBinaryOperator(binaryExpression.getOperationTokenType());
}
if(expression instanceof PsiInstanceOfExpression){
return RELATIONAL_PRECEDENCE;
@@ -148,11 +146,6 @@ public class ParenthesesUtils{
return -1;
}
- public static int getPrecedenceForBinaryOperator(@NotNull PsiJavaToken sign){
- final IElementType tokenType = sign.getTokenType();
- return getPrecedenceForBinaryOperator(tokenType);
- }
-
public static int getPrecedenceForBinaryOperator(IElementType operator) {
final Integer precedence = s_binaryOperatorPrecedence.get(operator);
return precedence.intValue();
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/SideEffectChecker.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/SideEffectChecker.java
index a679639ca8a5..c82a7b35f83e 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/SideEffectChecker.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/SideEffectChecker.java
@@ -56,8 +56,7 @@ public class SideEffectChecker{
@Override public void visitPrefixExpression(PsiPrefixExpression expression){
super.visitPrefixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(tokenType.equals(JavaTokenType.PLUSPLUS) ||
tokenType.equals(JavaTokenType.MINUSMINUS)){
@@ -67,8 +66,7 @@ public class SideEffectChecker{
@Override public void visitPostfixExpression(PsiPostfixExpression expression){
super.visitPostfixExpression(expression);
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(tokenType.equals(JavaTokenType.PLUSPLUS) ||
tokenType.equals(JavaTokenType.MINUSMINUS)){
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/VariableAccessUtils.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/VariableAccessUtils.java
index a169b5b30ccb..b6d772cf737a 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/VariableAccessUtils.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/VariableAccessUtils.java
@@ -66,8 +66,7 @@ public class VariableAccessUtils {
if (expression instanceof PsiPrefixExpression) {
final PsiPrefixExpression prefixExpression =
(PsiPrefixExpression)expression;
- final PsiJavaToken sign = prefixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return false;
@@ -77,8 +76,7 @@ public class VariableAccessUtils {
} else if (expression instanceof PsiPostfixExpression) {
final PsiPostfixExpression postfixExpression =
(PsiPostfixExpression)expression;
- final PsiJavaToken sign = postfixExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)) {
return false;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/VariableAssignedVisitor.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/VariableAssignedVisitor.java
index 5956e36e2bdf..b8dd0b6f3129 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/VariableAssignedVisitor.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/psiutils/VariableAssignedVisitor.java
@@ -72,8 +72,7 @@ class VariableAssignedVisitor extends JavaRecursiveElementVisitor{
return;
}
super.visitPrefixExpression(prefixExpression);
- final PsiJavaToken operationSign = prefixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = prefixExpression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)){
return;
@@ -92,8 +91,7 @@ class VariableAssignedVisitor extends JavaRecursiveElementVisitor{
return;
}
super.visitPostfixExpression(postfixExpression);
- final PsiJavaToken operationSign = postfixExpression.getOperationSign();
- final IElementType tokenType = operationSign.getTokenType();
+ final IElementType tokenType = postfixExpression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.PLUSPLUS) &&
!tokenType.equals(JavaTokenType.MINUSMINUS)){
return;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/MultiplyByPowerOfTwoPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/MultiplyByPowerOfTwoPredicate.java
index eb45c3a846e0..8c67428187c4 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/MultiplyByPowerOfTwoPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/MultiplyByPowerOfTwoPredicate.java
@@ -36,8 +36,7 @@ class MultiplyByPowerOfTwoPredicate implements PsiElementPredicate{
private static boolean assignmentExpressionIsMultiplyByPowerOfTwo(
PsiAssignmentExpression expression){
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.ASTERISKEQ) &&
!tokenType.equals(JavaTokenType.DIVEQ)){
return false;
@@ -59,8 +58,7 @@ class MultiplyByPowerOfTwoPredicate implements PsiElementPredicate{
private static boolean binaryExpressionIsMultiplyByPowerOfTwo(
PsiBinaryExpression expression){
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.ASTERISK) &&
!tokenType.equals(JavaTokenType.DIV)){
return false;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ReplaceMultiplyWithShiftIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ReplaceMultiplyWithShiftIntention.java
index c76ad852dc7d..05e16f55d084 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ReplaceMultiplyWithShiftIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ReplaceMultiplyWithShiftIntention.java
@@ -77,8 +77,7 @@ public class ReplaceMultiplyWithShiftIntention extends MutablyNamedIntention {
throws IncorrectOperationException {
final PsiExpression lhs = expression.getLExpression();
final PsiExpression rhs = expression.getRExpression();
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
final String assignString;
if (tokenType.equals(JavaTokenType.ASTERISKEQ)) {
assignString = "<<=";
@@ -95,8 +94,7 @@ public class ReplaceMultiplyWithShiftIntention extends MutablyNamedIntention {
throws IncorrectOperationException {
final PsiExpression lhs = expression.getLOperand();
final PsiExpression rhs = expression.getROperand();
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
final String operatorString;
if (tokenType.equals(JavaTokenType.ASTERISK)) {
operatorString = "<<";
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ReplaceShiftWithMultiplyIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ReplaceShiftWithMultiplyIntention.java
index ccd63a85c0b1..f62f3cd81cb6 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ReplaceShiftWithMultiplyIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ReplaceShiftWithMultiplyIntention.java
@@ -81,8 +81,7 @@ public class ReplaceShiftWithMultiplyIntention extends MutablyNamedIntention {
(PsiAssignmentExpression)element;
final PsiExpression lhs = exp.getLExpression();
final PsiExpression rhs = exp.getRExpression();
- final PsiJavaToken sign = exp.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
final String assignString;
if (tokenType.equals(JavaTokenType.LTLTEQ)) {
assignString = "*=";
@@ -100,8 +99,7 @@ public class ReplaceShiftWithMultiplyIntention extends MutablyNamedIntention {
(PsiBinaryExpression)element;
final PsiExpression lhs = exp.getLOperand();
final PsiExpression rhs = exp.getROperand();
- final PsiJavaToken sign = exp.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = exp.getOperationTokenType();
final String operatorString;
if (tokenType.equals(JavaTokenType.LTLT)) {
operatorString = "*";
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ShiftByLiteralPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ShiftByLiteralPredicate.java
index 301aeccd4d1e..5ba78c84dd65 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ShiftByLiteralPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/shift/ShiftByLiteralPredicate.java
@@ -35,8 +35,7 @@ class ShiftByLiteralPredicate implements PsiElementPredicate{
private static boolean isAssignmentShiftByLiteral(
PsiAssignmentExpression expression){
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.LTLTEQ) &&
!tokenType.equals(JavaTokenType.GTGTEQ)){
return false;
@@ -58,8 +57,7 @@ class ShiftByLiteralPredicate implements PsiElementPredicate{
private static boolean isBinaryShiftByLiteral(
PsiBinaryExpression expression){
- final PsiJavaToken sign = expression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = expression.getOperationTokenType();
if(!tokenType.equals(JavaTokenType.LTLT) &&
!tokenType.equals(JavaTokenType.GTGT)){
return false;
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/switchtoif/ReplaceIfWithSwitchIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/switchtoif/ReplaceIfWithSwitchIntention.java
index c35f86c1ce6a..8a2bdc259aa3 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/switchtoif/ReplaceIfWithSwitchIntention.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/switchtoif/ReplaceIfWithSwitchIntention.java
@@ -274,8 +274,7 @@ public class ReplaceIfWithSwitchIntention extends Intention {
(PsiBinaryExpression)expression;
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType tokenType = sign.getTokenType();
+ final IElementType tokenType = binaryExpression.getOperationTokenType();
if (JavaTokenType.OROR.equals(tokenType)) {
getValuesFromExpression(lhs, caseExpression,
values);
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/switchtoif/SwitchUtils.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/switchtoif/SwitchUtils.java
index a9fb0aaff79d..93cc35901133 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/switchtoif/SwitchUtils.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/switchtoif/SwitchUtils.java
@@ -143,8 +143,7 @@ class SwitchUtils {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType operation = sign.getTokenType();
+ final IElementType operation = binaryExpression.getOperationTokenType();
final PsiExpression lhs = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
if(operation.equals(JavaTokenType.OROR)){
@@ -223,8 +222,7 @@ class SwitchUtils {
}
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression) expression;
- final PsiJavaToken sign = binaryExpression.getOperationSign();
- final IElementType operation = sign.getTokenType();
+ final IElementType operation = binaryExpression.getOperationTokenType();
final PsiExpression lOperand = binaryExpression.getLOperand();
final PsiExpression rhs = binaryExpression.getROperand();
if(operation.equals(JavaTokenType.OROR)){
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ReplaceIfWithConditionalPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ReplaceIfWithConditionalPredicate.java
index ee1d8613c1d1..6a17e07faae3 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ReplaceIfWithConditionalPredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ReplaceIfWithConditionalPredicate.java
@@ -144,10 +144,8 @@ class ReplaceIfWithConditionalPredicate implements PsiElementPredicate{
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
((PsiExpressionStatement) elseBranch).getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType tokenType = thenSign.getTokenType();
- if(!tokenType.equals(elseSign.getTokenType())){
+ final IElementType tokenType = thenExpression.getOperationTokenType();
+ if(!tokenType.equals(elseExpression.getOperationTokenType())){
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/SimplifyIfElsePredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/SimplifyIfElsePredicate.java
index 670d835b2493..8dd6bf563032 100644
--- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/SimplifyIfElsePredicate.java
+++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/SimplifyIfElsePredicate.java
@@ -140,10 +140,8 @@ class SimplifyIfElsePredicate implements PsiElementPredicate{
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType thenTokenType = thenSign.getTokenType();
- if(!thenTokenType.equals(elseSign.getTokenType())){
+ final IElementType thenTokenType = thenExpression.getOperationTokenType();
+ if(!thenTokenType.equals(elseExpression.getOperationTokenType())){
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
@@ -171,10 +169,8 @@ class SimplifyIfElsePredicate implements PsiElementPredicate{
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType thenTokenType = thenSign.getTokenType();
- if(!thenTokenType.equals(elseSign.getTokenType())){
+ final IElementType thenTokenType = thenExpression.getOperationTokenType();
+ if(!thenTokenType.equals(elseExpression.getOperationTokenType())){
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
@@ -207,10 +203,8 @@ class SimplifyIfElsePredicate implements PsiElementPredicate{
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
((PsiExpressionStatement) elseBranch).getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType thenTokenType = thenSign.getTokenType();
- if(!thenTokenType.equals(elseSign.getTokenType())){
+ final IElementType thenTokenType = thenExpression.getOperationTokenType();
+ if(!thenTokenType.equals(elseExpression.getOperationTokenType())){
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
@@ -247,10 +241,8 @@ class SimplifyIfElsePredicate implements PsiElementPredicate{
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
- final PsiJavaToken thenSign = thenExpression.getOperationSign();
- final PsiJavaToken elseSign = elseExpression.getOperationSign();
- final IElementType thenTokenType = thenSign.getTokenType();
- if(!thenTokenType.equals(elseSign.getTokenType())){
+ final IElementType thenTokenType = thenExpression.getOperationTokenType();
+ if(!thenTokenType.equals(elseExpression.getOperationTokenType())){
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/string_format/HexadecimalLiteral_after.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/string_format/HexadecimalLiteral_after.java
index 897397e05dfc..a5cadb01651b 100644
--- a/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/string_format/HexadecimalLiteral_after.java
+++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/string_format/HexadecimalLiteral_after.java
@@ -1,3 +1,3 @@
class C {
- String s = String.format("or not16");
+ String s = String.format("or not%d", 0x10);
}
\ No newline at end of file
diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidPackagingCompiler.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidPackagingCompiler.java
index 96f432445695..affe2432a007 100644
--- a/plugins/android/src/org/jetbrains/android/compiler/AndroidPackagingCompiler.java
+++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidPackagingCompiler.java
@@ -411,7 +411,7 @@ public class AndroidPackagingCompiler implements PackagingCompiler {
ArrayList nativeLibs = new ArrayList();
for (VirtualFile nativeLibFolder : nativeLibFolders) {
for (VirtualFile child : nativeLibFolder.getChildren()) {
- AndroidApkBuilder.collectNativeLibraries(child, nativeLibs);
+ AndroidApkBuilder.collectNativeLibraries(child, nativeLibs, !releaseBuild);
}
}
for (VirtualFile nativeLib : nativeLibs) {
diff --git a/plugins/android/src/org/jetbrains/android/compiler/tools/AndroidApkBuilder.java b/plugins/android/src/org/jetbrains/android/compiler/tools/AndroidApkBuilder.java
index 1c011cff99ff..815da70522a7 100644
--- a/plugins/android/src/org/jetbrains/android/compiler/tools/AndroidApkBuilder.java
+++ b/plugins/android/src/org/jetbrains/android/compiler/tools/AndroidApkBuilder.java
@@ -236,7 +236,7 @@ public class AndroidApkBuilder {
}
for (VirtualFile nativeLibsFolder : nativeLibsFolders) {
for (VirtualFile child : nativeLibsFolder.getChildren()) {
- writeNativeLibraries(builder, nativeLibsFolder, child);
+ writeNativeLibraries(builder, nativeLibsFolder, child, signed);
}
}
builder.close();
@@ -297,9 +297,10 @@ public class AndroidApkBuilder {
});
}
- private static void writeNativeLibraries(SignedJarBuilder builder, VirtualFile nativeLibsFolder, VirtualFile child) throws IOException {
+ private static void writeNativeLibraries(SignedJarBuilder builder, VirtualFile nativeLibsFolder, VirtualFile child, boolean debugBuild)
+ throws IOException {
ArrayList list = new ArrayList();
- collectNativeLibraries(child, list);
+ collectNativeLibraries(child, list, debugBuild);
for (VirtualFile file : list) {
String relativePath = VfsUtil.getRelativePath(file, nativeLibsFolder, File.separatorChar);
String path = FileUtil.toSystemIndependentName(SdkConstants.FD_APK_NATIVE_LIBS + File.separator + relativePath);
@@ -314,16 +315,17 @@ public class AndroidApkBuilder {
return result;
}
- public static void collectNativeLibraries(@NotNull VirtualFile file, @NotNull List result) {
+ public static void collectNativeLibraries(@NotNull VirtualFile file, @NotNull List result, boolean debugBuild) {
if (!file.isDirectory()) {
String ext = file.getExtension();
- if (AndroidUtils.EXT_NATIVE_LIB.equalsIgnoreCase(ext)) {
+ if (AndroidUtils.EXT_NATIVE_LIB.equalsIgnoreCase(ext) ||
+ (debugBuild && SdkConstants.FN_GDBSERVER.equals(file.getName()))) {
result.add(file);
}
}
else if (JavaResourceFilter.checkFolderForPackaging(file.getName())) {
for (VirtualFile child : file.getChildren()) {
- collectNativeLibraries(child, result);
+ collectNativeLibraries(child, result, debugBuild);
}
}
}
diff --git a/plugins/git4idea/src/git4idea/annotate/GitAnnotationProvider.java b/plugins/git4idea/src/git4idea/annotate/GitAnnotationProvider.java
index c043a3f20e74..b5a328d0de78 100644
--- a/plugins/git4idea/src/git4idea/annotate/GitAnnotationProvider.java
+++ b/plugins/git4idea/src/git4idea/annotate/GitAnnotationProvider.java
@@ -149,7 +149,7 @@ public class GitAnnotationProvider implements AnnotationProvider, VcsCacheableAn
h.setNoSSH(true);
h.setStdoutSuppressed(true);
h.setCharset(file.getCharset());
- h.addParameters("-p", "-l", "-t", "-M");
+ h.addParameters("-p", "-l", "-t");
if (revision == null) {
h.addParameters("HEAD");
}
diff --git a/plugins/git4idea/src/git4idea/history/wholeTree/GitLogUI.java b/plugins/git4idea/src/git4idea/history/wholeTree/GitLogUI.java
index 689f24368453..0dad36c269ae 100644
--- a/plugins/git4idea/src/git4idea/history/wholeTree/GitLogUI.java
+++ b/plugins/git4idea/src/git4idea/history/wholeTree/GitLogUI.java
@@ -89,6 +89,7 @@ public class GitLogUI implements Disposable {
private UIRefresh myUIRefresh;
private JBTable myJBTable;
private RepositoryChangesBrowser myRepositoryChangesBrowser;
+ final List myCommitsInRepositoryChangesBrowser;
private boolean myDataBeingAdded;
private CardLayout myRepoLayout;
private JPanel myRepoPanel;
@@ -130,6 +131,7 @@ public class GitLogUI implements Disposable {
myPreviousFilter = "";
myDescriptionRenderer = new DescriptionRenderer();
myCommentSearchContext.addHighlighter(myDescriptionRenderer.myInner.myWorker);
+ myCommitsInRepositoryChangesBrowser = new ArrayList();
mySelectionRequestsMerger = new RequestsMerger(new Runnable() {
@Override
@@ -405,10 +407,10 @@ public class GitLogUI implements Disposable {
myRepoPanel.repaint();
return;
}
- myRepoLayout.show(myRepoPanel, "loading");
- myRepoPanel.repaint();
-
- gatherNotLoadedData();
+ if (! myDataBeingAdded && ! gatherNotLoadedData()) {
+ myRepoLayout.show(myRepoPanel, "loading");
+ myRepoPanel.repaint();
+ }
}
private static class MeaningfulSelection {
@@ -486,10 +488,12 @@ public class GitLogUI implements Disposable {
gatherNotLoadedData();
}
- private void gatherNotLoadedData() {
- if (myDataBeingAdded) return;
+ private boolean gatherNotLoadedData() {
+ if (myDataBeingAdded) return false;
final int[] rows = myJBTable.getSelectedRows();
final List commits = new ArrayList