diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/Database.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/Database.java index 9d743880a00..53969d4bdc6 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/Database.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/Database.java @@ -50,7 +50,7 @@ import com.ibm.icu.text.MessageFormat; * 0 | version number * INT_SIZE | pointer to head of linked list of blocks of size MIN_BLOCK_DELTAS*BLOCK_SIZE_DELTA * .. | ... - * INT_SIZE * m (1) | pointer to head of linked list of blocks of size (m+MIN_BLOCK_DELTAS) * BLOCK_SIZE_DELTA + * INT_SIZE * m (1) | pointer to head of linked list of blocks of size (m + MIN_BLOCK_DELTAS) * BLOCK_SIZE_DELTA * DATA_AREA | undefined (PDOM stores its own house-keeping data in this area) * * (1) where 2 <= m <= CHUNK_SIZE/BLOCK_SIZE_DELTA - MIN_BLOCK_DELTAS + 1 @@ -60,7 +60,7 @@ import com.ibm.icu.text.MessageFormat; * offset content * _____________________________ * 0 | size of block (negative indicates in use, positive unused) (2 bytes) - * PREV_OFFSET | pointer to prev block (of same size) (only in free blocks) + * PREV_OFFSET | pointer to previous block (of same size) (only in free blocks) * NEXT_OFFSET | pointer to next block (of same size) (only in free blocks) * */ @@ -68,7 +68,7 @@ public class Database { // Public for tests only, you shouldn't need these. public static final int INT_SIZE = 4; public static final int CHUNK_SIZE = 1024 * 4; - public static final int OFFSET_IN_CHUNK_MASK= CHUNK_SIZE-1; + public static final int OFFSET_IN_CHUNK_MASK= CHUNK_SIZE - 1; public static final int BLOCK_HEADER_SIZE= 2; public static final int BLOCK_SIZE_DELTA_BITS = 3; public static final int BLOCK_SIZE_DELTA= 1 << BLOCK_SIZE_DELTA_BITS; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCTypedef.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCTypedef.java index f47fdc47196..54b9e574b13 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCTypedef.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCTypedef.java @@ -93,8 +93,7 @@ class PDOMCTypedef extends PDOMBinding implements ITypedef, ITypeContainer, IInd } } return false; - } - else { + } else { return false; } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCVariable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCVariable.java index 6ce1b2b2037..45c2615054f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCVariable.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCVariable.java @@ -6,9 +6,9 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Doug Schaefer (QNX) - Initial API and implementation - * IBM Corporation - * Markus Schorn (Wind River Systems) + * Doug Schaefer (QNX) - Initial API and implementation + * IBM Corporation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom.dom.c; @@ -31,7 +31,6 @@ import org.eclipse.core.runtime.CoreException; * Database representation for c-variables */ class PDOMCVariable extends PDOMBinding implements IVariable { - /** * Offset of pointer to type information for this variable * (relative to the beginning of the record). diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFriend.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFriend.java index 797abb27ede..c10a5436b0d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFriend.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFriend.java @@ -28,7 +28,7 @@ class PDOMCPPFriend extends PDOMNode { public PDOMCPPFriend(PDOMLinkage linkage, long record) { super(linkage, record); } - + public PDOMCPPFriend(PDOMLinkage linkage, PDOMName friendSpec) throws CoreException { super(linkage, null); @@ -48,10 +48,11 @@ class PDOMCPPFriend extends PDOMNode { public PDOMName getSpecifierName() throws CoreException { long rec = getDB().getRecPtr(record + FRIEND_SPECIFIER); - if (rec != 0) return new PDOMName(getLinkage(), rec); + if (rec != 0) + return new PDOMName(getLinkage(), rec); return null; } - + public IBinding getFriendSpecifier() { PDOMName friendSpecName; try { @@ -64,12 +65,12 @@ class PDOMCPPFriend extends PDOMNode { } return null; } - + public void setNextFriend(PDOMCPPFriend nextFriend) throws CoreException { long rec = nextFriend != null ? nextFriend.getRecord() : 0; getDB().putRecPtr(record + NEXT_FRIEND, rec); } - + public PDOMCPPFriend getNextFriend() throws CoreException { long rec = getDB().getRecPtr(record + NEXT_FRIEND); return rec != 0 ? new PDOMCPPFriend(getLinkage(), rec) : null; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THContentProvider.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THContentProvider.java index 049adf728a5..ecc8f0d222c 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THContentProvider.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THContentProvider.java @@ -6,21 +6,20 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Markus Schorn - initial API and implementation + * Markus Schorn - initial API and implementation *******************************************************************************/ - package org.eclipse.cdt.internal.ui.typehierarchy; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; public class THContentProvider implements ITreeContentProvider { - private static final Object[] NO_CHILDREN= new Object[0]; + private static final Object[] NO_CHILDREN= {}; private THHierarchyModel fModel; public THContentProvider() { } - + @Override final public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { fModel= (THHierarchyModel) newInput; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THGraph.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THGraph.java index 5be94729807..5db8a9abf20 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THGraph.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THGraph.java @@ -39,10 +39,10 @@ import org.eclipse.cdt.internal.ui.viewsupport.IndexUI; class THGraph { private static final ICElement[] NO_MEMBERS = {}; - private THGraphNode fInputNode= null; - private HashSet fRootNodes= new HashSet(); - private HashSet fLeaveNodes= new HashSet(); - private HashMap fNodes= new HashMap(); + private THGraphNode fInputNode; + private HashSet fRootNodes= new HashSet<>(); + private HashSet fLeafNodes= new HashSet<>(); + private HashMap fNodes= new HashMap<>(); private boolean fFileIsIndexed; public THGraph() { @@ -63,7 +63,7 @@ class THGraph { node= new THGraphNode(input); fNodes.put(input, node); fRootNodes.add(node); - fLeaveNodes.add(node); + fLeafNodes.add(node); } return node; } @@ -76,7 +76,7 @@ class THGraph { from.startEdge(edge); to.endEdge(edge); fRootNodes.remove(to); - fLeaveNodes.remove(from); + fLeafNodes.remove(from); return edge; } @@ -88,8 +88,8 @@ class THGraph { return false; } - HashSet checked= new HashSet(); - ArrayList stack= new ArrayList(); + HashSet checked= new HashSet<>(); + ArrayList stack= new ArrayList<>(); stack.add(to); while (!stack.isEmpty()) { @@ -119,8 +119,8 @@ class THGraph { return fRootNodes; } - public Collection getLeaveNodes() { - return fLeaveNodes; + public Collection getLeafNodes() { + return fLeafNodes; } public void defineInputNode(IIndex index, ICElement input) { @@ -141,8 +141,8 @@ class THGraph { if (fInputNode == null) { return; } - HashSet handled= new HashSet(); - ArrayList stack= new ArrayList(); + HashSet handled= new HashSet<>(); + ArrayList stack= new ArrayList<>(); stack.add(fInputNode.getElement()); handled.add(fInputNode.getElement()); while (!stack.isEmpty()) { @@ -204,8 +204,8 @@ class THGraph { if (fInputNode == null) { return; } - HashSet handled= new HashSet(); - ArrayList stack= new ArrayList(); + HashSet handled= new HashSet<>(); + ArrayList stack= new ArrayList<>(); ICElement element = fInputNode.getElement(); stack.add(element); handled.add(element); @@ -249,7 +249,7 @@ class THGraph { private void addMembers(IIndex index, THGraphNode graphNode, IBinding binding) throws CoreException { if (graphNode.getMembers(false) == null) { - ArrayList memberList= new ArrayList(); + ArrayList memberList= new ArrayList<>(); if (binding instanceof ICPPClassType) { ICPPClassType ct= (ICPPClassType) binding; IBinding[] members= ClassTypeHelper.getDeclaredFields(ct, null); @@ -285,7 +285,7 @@ class THGraph { } public boolean isTrivial() { - return fNodes.size() < 2; + return fNodes.size() <= 1; } public boolean isFileIndexed() { diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THGraphNode.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THGraphNode.java index 70a9104d100..8d1a994c532 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THGraphNode.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THGraphNode.java @@ -11,10 +11,8 @@ package org.eclipse.cdt.internal.ui.typehierarchy; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import org.eclipse.cdt.core.model.ICElement; @@ -23,7 +21,7 @@ class THGraphNode { private List fOutgoing= Collections.emptyList(); private List fIncoming= Collections.emptyList(); private ICElement fElement; - private ICElement[] fMembers= null; + private ICElement[] fMembers; THGraphNode(ICElement element) { fElement= element; @@ -46,7 +44,7 @@ class THGraphNode { case 0: return Collections.singletonList(elem); case 1: - list= new ArrayList(list); + list= new ArrayList<>(list); list.add(elem); return list; } @@ -70,7 +68,7 @@ class THGraphNode { if (!addInherited) { return fMembers; } - ArrayList list= new ArrayList(); + ArrayList list= new ArrayList<>(); collectMembers(new HashSet(), list); return list.toArray(new ICElement[list.size()]); } @@ -78,11 +76,10 @@ class THGraphNode { private void collectMembers(HashSet visited, List list) { if (visited.add(this)) { if (fMembers != null) { - list.addAll(Arrays.asList(fMembers)); + Collections.addAll(list, fMembers); } List bases= getOutgoing(); - for (Iterator iterator = bases.iterator(); iterator.hasNext();) { - THGraphEdge edge = iterator.next(); + for (THGraphEdge edge : bases) { edge.getEndNode().collectMembers(visited, list); } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THHierarchyModel.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THHierarchyModel.java index 2ecd3ca3c43..d2b89f5f238 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THHierarchyModel.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THHierarchyModel.java @@ -179,15 +179,15 @@ class THHierarchyModel { return; } boolean fwd= fHierarchyKind == SUPER_TYPE_HIERARCHY; - ArrayList stack= new ArrayList(); - ArrayList roots= new ArrayList(); - ArrayList leafs= new ArrayList(); + ArrayList stack= new ArrayList<>(); + ArrayList roots= new ArrayList<>(); + ArrayList leafs= new ArrayList<>(); THGraphNode inputNode= fGraph.getInputNode(); Collection groots; if (fHierarchyKind == TYPE_HIERARCHY) { - groots= fGraph.getLeaveNodes(); + groots= fGraph.getLeafNodes(); } else { THGraphNode node= fGraph.getInputNode(); if (node != null) { @@ -204,7 +204,7 @@ class THHierarchyModel { } while (!stack.isEmpty()) { - THNode node= stack.remove(stack.size()-1); + THNode node= stack.remove(stack.size() - 1); THGraphNode gnode= fGraph.getNode(node.getElement()); List edges= fwd ? gnode.getOutgoing() : gnode.getIncoming(); if (edges.isEmpty()) { @@ -219,7 +219,7 @@ class THHierarchyModel { } } fRootNodes= roots.toArray(new THNode[roots.size()]); - removeFilteredLeafs(fRootNodes); + removeFilteredLeaves(fRootNodes); fSelectedTypeNode= findSelection(fRootNodes); if (fSelectedTypeNode != null) { fTypeToSelect= fSelectedTypeNode.getElement(); @@ -231,15 +231,15 @@ class THHierarchyModel { removeNonImplementorLeaves(fRootNodes); } - private void removeFilteredLeafs(THNode[] rootNodes) { + private void removeFilteredLeaves(THNode[] rootNodes) { for (THNode node : rootNodes) { - node.removeFilteredLeafs(); + node.removeFilteredLeaves(); } } private void removeNonImplementorLeaves(THNode[] rootNodes) { for (THNode node : rootNodes) { - node.removeNonImplementorLeafs(); + node.removeNonImplementorLeaves(); } } @@ -394,8 +394,7 @@ class THHierarchyModel { } private boolean isImplementor(ICElement element) { - if (element == null - || fSelectedMember == null || fMemberSignatureToSelect == null) { + if (element == null || fSelectedMember == null || fMemberSignatureToSelect == null) { return false; } THGraphNode gnode= fGraph.getNode(element); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THInformationControl.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THInformationControl.java index bb1a44db611..a60d12f6edf 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THInformationControl.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THInformationControl.java @@ -9,7 +9,6 @@ * Markus Schorn - initial API and implementation * Patrick Hofer [bug 325488] *******************************************************************************/ - package org.eclipse.cdt.internal.ui.typehierarchy; import java.util.Iterator; @@ -47,11 +46,10 @@ import org.eclipse.cdt.internal.ui.text.AbstractInformationControl; import org.eclipse.cdt.internal.ui.viewsupport.EditorOpener; public class THInformationControl extends AbstractInformationControl implements ITHModelPresenter { - private THHierarchyModel fModel; private THLabelProvider fHierarchyLabelProvider; private TreeViewer fHierarchyTreeViewer; - private boolean fDisposed= false; + private boolean fDisposed; private KeyAdapter fKeyAdapter; public THInformationControl(Shell parent, int shellStyle, int treeStyle) { @@ -265,10 +263,11 @@ public class THInformationControl extends AbstractInformationControl implements protected void selectFirstMatch() { Tree tree= fHierarchyTreeViewer.getTree(); Object element= findElement(tree.getItems()); - if (element != null) + if (element != null) { fHierarchyTreeViewer.setSelection(new StructuredSelection(element), true); - else + } else { fHierarchyTreeViewer.setSelection(StructuredSelection.EMPTY); + } } protected void toggleHierarchy() { @@ -301,7 +300,7 @@ public class THInformationControl extends AbstractInformationControl implements Object item= item2.getData(); THNode element= null; if (item instanceof THNode) { - element= (THNode)item; + element= (THNode) item; if (fStringMatcher == null) return element; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THNode.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THNode.java index 4cd9b6b767e..939cea67443 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THNode.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THNode.java @@ -20,8 +20,6 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.cdt.core.model.ICElement; -import org.eclipse.cdt.internal.ui.util.CoreUtility; - public class THNode implements IAdaptable { private THNode fParent; private ICElement fElement; @@ -32,30 +30,19 @@ public class THNode implements IAdaptable { private boolean fIsImplementor; /** - * Creates a new node for the include browser + * Creates a new node for the type hierarchy browser. */ public THNode(THNode parent, ICElement decl) { fParent= parent; fElement= decl; - fHashCode= computeHashCode(); + fHashCode= Objects.hash(fParent, fElement); } - - private int computeHashCode() { - int hashCode= 0; - if (fParent != null) { - hashCode= fParent.hashCode() * 31; - } - if (fElement != null) { - hashCode+= fElement.hashCode(); - } - return hashCode; - } - @Override + @Override public int hashCode() { return fHashCode; } - + @Override public boolean equals(Object o) { if (!(o instanceof THNode)) { @@ -69,9 +56,9 @@ public class THNode implements IAdaptable { return Objects.equals(fElement, rhs.fElement); } - + /** - * Returns the parent node or null for the root node. + * Returns the parent node or {@code null} for the root node. */ public THNode getParent() { return fParent; @@ -100,7 +87,7 @@ public class THNode implements IAdaptable { public void addChild(THNode childNode) { if (fChildren.isEmpty()) { - fChildren= new ArrayList(); + fChildren= new ArrayList<>(); } fChildren.add(childNode); } @@ -121,20 +108,20 @@ public class THNode implements IAdaptable { return fIsImplementor; } - public void removeFilteredLeafs() { + public void removeFilteredLeaves() { for (Iterator iterator = fChildren.iterator(); iterator.hasNext();) { THNode child = iterator.next(); - child.removeFilteredLeafs(); + child.removeFilteredLeaves(); if (child.isFiltered() && !child.hasChildren()) { iterator.remove(); } } } - public void removeNonImplementorLeafs() { + public void removeNonImplementorLeaves() { for (Iterator iterator = fChildren.iterator(); iterator.hasNext();) { THNode child = iterator.next(); - child.removeNonImplementorLeafs(); + child.removeNonImplementorLeaves(); if (!child.isImplementor() && !child.hasChildren()) { iterator.remove(); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java index 87fb486736b..fe93b263d86 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java @@ -98,7 +98,7 @@ public class LRCPPTests extends AST2CPPTests { //DeclType @Override - public void testDeclType_294730() throws Exception {} + public void testDecltype_294730() throws Exception {} //Defaulted and deleted functions @Override