1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 10:46:02 +02:00

Cosmetics.

This commit is contained in:
Sergey Prigogin 2012-04-26 20:19:51 -07:00
parent 181907f2fd
commit 52ac0596f6
3 changed files with 41 additions and 37 deletions

View file

@ -57,7 +57,7 @@ public class ObjectSet<T> extends ObjectTable<T> {
* @param key the item to add (may be null) * @param key the item to add (may be null)
*/ */
public void checkPut(T key) { public void checkPut(T key) {
if (key!=null) if (key != null)
add(key); add(key);
} }

View file

@ -6,9 +6,9 @@
* http://www.eclipse.org/legal/epl-v10.html * http://www.eclipse.org/legal/epl-v10.html
* *
* Contributors: * Contributors:
* John Camelon (IBM) - Initial API and implementation * John Camelon (IBM) - Initial API and implementation
* Markus Schorn (Wind River Systems) * Markus Schorn (Wind River Systems)
* Andrew Ferguson (Symbian) * Andrew Ferguson (Symbian)
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.internal.core.dom.parser.cpp; package org.eclipse.cdt.internal.core.dom.parser.cpp;
@ -39,7 +39,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
*/ */
public class CPPASTTemplateId extends CPPASTNameBase implements ICPPASTTemplateId, IASTAmbiguityParent { public class CPPASTTemplateId extends CPPASTNameBase implements ICPPASTTemplateId, IASTAmbiguityParent {
private IASTName templateName; private IASTName templateName;
private IASTNode[] templateArguments = null; private IASTNode[] templateArguments;
public CPPASTTemplateId() { public CPPASTTemplateId() {
} }
@ -57,8 +57,9 @@ public class CPPASTTemplateId extends CPPASTNameBase implements ICPPASTTemplateI
public CPPASTTemplateId copy(CopyStyle style) { public CPPASTTemplateId copy(CopyStyle style) {
CPPASTTemplateId copy = new CPPASTTemplateId(templateName == null ? CPPASTTemplateId copy = new CPPASTTemplateId(templateName == null ?
null : templateName.copy(style)); null : templateName.copy(style));
for (IASTNode arg : getTemplateArguments()) for (IASTNode arg : getTemplateArguments()) {
copy.internalAddTemplateArgument(arg == null ? null : arg.copy(style)); copy.internalAddTemplateArgument(arg == null ? null : arg.copy(style));
}
copy.setOffsetAndLength(this); copy.setOffsetAndLength(this);
if (style == CopyStyle.withLocations) { if (style == CopyStyle.withLocations) {
copy.setCopyLocation(this); copy.setCopyLocation(this);
@ -215,7 +216,8 @@ public class CPPASTTemplateId extends CPPASTNameBase implements ICPPASTTemplateI
@Override @Override
public void replace(IASTNode child, IASTNode other) { public void replace(IASTNode child, IASTNode other) {
if (templateArguments == null) return; if (templateArguments == null)
return;
for (int i = 0; i < templateArguments.length; ++i) { for (int i = 0; i < templateArguments.length; ++i) {
if (child == templateArguments[i]) { if (child == templateArguments[i]) {
other.setPropertyInParent(child.getPropertyInParent()); other.setPropertyInParent(child.getPropertyInParent());

View file

@ -51,22 +51,23 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
/** /**
* Base class for c++-scopes of the ast. * Base class for c++-scopes of the AST.
*/ */
abstract public class CPPScope implements ICPPASTInternalScope { abstract public class CPPScope implements ICPPASTInternalScope {
protected static final char[] CONSTRUCTOR_KEY = "!!!CTOR!!!".toCharArray(); //$NON-NLS-1$ protected static final char[] CONSTRUCTOR_KEY = "!!!CTOR!!!".toCharArray(); //$NON-NLS-1$
private static final IProgressMonitor NPM = new NullProgressMonitor(); private static final IProgressMonitor NPM = new NullProgressMonitor();
private static final ICPPNamespace UNINITIALIZED = new CPPNamespace.CPPNamespaceProblem(null, 0, null); private static final ICPPNamespace UNINITIALIZED = new CPPNamespace.CPPNamespaceProblem(null, 0, null);
private IASTNode physicalNode; private IASTNode physicalNode;
private boolean isCached = false; private boolean isCached = false;
protected CharArrayObjectMap<Object> bindings = null; protected CharArrayObjectMap<Object> bindings;
private ICPPNamespace fIndexNamespace= UNINITIALIZED; private ICPPNamespace fIndexNamespace= UNINITIALIZED;
public static class CPPScopeProblem extends ProblemBinding implements ICPPScope { public static class CPPScopeProblem extends ProblemBinding implements ICPPScope {
public CPPScopeProblem(IASTNode node, int id, char[] arg) { public CPPScopeProblem(IASTNode node, int id, char[] arg) {
super(node, id, arg); super(node, id, arg);
} }
public CPPScopeProblem(IASTName name, int id) { public CPPScopeProblem(IASTName name, int id) {
super(name, id); super(name, id);
} }
@ -89,10 +90,10 @@ abstract public class CPPScope implements ICPPASTInternalScope {
@Override @Override
@SuppressWarnings({ "unchecked" }) @SuppressWarnings({ "unchecked" })
public void addName(IASTName name) { public void addName(IASTName name) {
// don't add inactive names to the scope // Don't add inactive names to the scope.
if (!name.isActive()) if (!name.isActive())
return; return;
if (bindings == null) if (bindings == null)
bindings = new CharArrayObjectMap<Object>(1); bindings = new CharArrayObjectMap<Object>(1);
if (name instanceof ICPPASTQualifiedName) { if (name instanceof ICPPASTQualifiedName) {
@ -101,17 +102,17 @@ abstract public class CPPScope implements ICPPASTInternalScope {
return; return;
} }
// name belongs to a different scope, don't add it here except it names this scope // Name belongs to a different scope, don't add it here except if it names this scope.
if (!canDenoteScopeMember((ICPPASTQualifiedName) name)) if (!canDenoteScopeMember((ICPPASTQualifiedName) name))
return; return;
} }
final char[] c= name.getLookupKey(); final char[] c= name.getLookupKey();
if (c.length == 0) if (c.length == 0)
return; return;
Object o = bindings.get(c); Object o = bindings.get(c);
if (o != null) { if (o != null) {
if (o instanceof ObjectSet) { if (o instanceof ObjectSet) {
((ObjectSet<Object>)o).put(name); ((ObjectSet<Object>) o).put(name);
} else { } else {
ObjectSet<Object> temp = new ObjectSet<Object>(2); ObjectSet<Object> temp = new ObjectSet<Object>(2);
temp.put(o); temp.put(o);
@ -125,16 +126,17 @@ abstract public class CPPScope implements ICPPASTInternalScope {
public boolean canDenoteScopeMember(ICPPASTQualifiedName name) { public boolean canDenoteScopeMember(ICPPASTQualifiedName name) {
IScope scope= this; IScope scope= this;
IASTName[] na= name.getNames(); IASTName[] segments= name.getNames();
try { try {
for (int i= na.length - 2; i >= 0; i--) { for (int i= segments.length - 1; --i >= 0;) {
if (scope == null) if (scope == null)
return false; return false;
IName scopeName = scope.getScopeName(); IName scopeName = scope.getScopeName();
if (scopeName == null) if (scopeName == null)
return false; return false;
if (!CharArrayUtils.equals(scopeName.getSimpleID(), na[i].getSimpleID())) IASTName segmentName = segments[i];
if (!CharArrayUtils.equals(scopeName.getSimpleID(), segmentName.getSimpleID()))
return false; return false;
scope= scope.getParent(); scope= scope.getParent();
} }
@ -155,10 +157,10 @@ abstract public class CPPScope implements ICPPASTInternalScope {
IIndex index = tu == null ? null : tu.getIndex(); IIndex index = tu == null ? null : tu.getIndex();
if (index != null) { if (index != null) {
final char[] nchars = name.getLookupKey(); final char[] nchars = name.getLookupKey();
// Try looking this up in the PDOM // Try looking this up in the index.
if (physicalNode instanceof IASTTranslationUnit) { if (physicalNode instanceof IASTTranslationUnit) {
try { try {
IBinding[] bindings= index.findBindings(nchars, IBinding[] bindings= index.findBindings(nchars,
IndexFilter.CPP_DECLARED_OR_IMPLICIT_NO_INSTANCE, NPM); IndexFilter.CPP_DECLARED_OR_IMPLICIT_NO_INSTANCE, NPM);
if (fileSet != null) { if (fileSet != null) {
bindings= fileSet.filterFileLocalBindings(bindings); bindings= fileSet.filterFileLocalBindings(bindings);
@ -166,7 +168,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
binding= CPPSemantics.resolveAmbiguities(name, bindings); binding= CPPSemantics.resolveAmbiguities(name, bindings);
if (binding instanceof ICPPUsingDeclaration) { if (binding instanceof ICPPUsingDeclaration) {
binding= CPPSemantics.resolveAmbiguities(name, binding= CPPSemantics.resolveAmbiguities(name,
((ICPPUsingDeclaration)binding).getDelegates()); ((ICPPUsingDeclaration) binding).getDelegates());
} }
} catch (CoreException e) { } catch (CoreException e) {
CCorePlugin.log(e); CCorePlugin.log(e);
@ -192,7 +194,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
if (nsbinding != null) { if (nsbinding != null) {
fIndexNamespace= (ICPPNamespace) index.adaptBinding(nsbinding); fIndexNamespace= (ICPPNamespace) index.adaptBinding(nsbinding);
} }
} }
} }
return fIndexNamespace; return fIndexNamespace;
} }
@ -206,7 +208,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
public final IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup, IIndexFileSet fileSet) { public final IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup, IIndexFileSet fileSet) {
return getBindings(name, resolve, prefixLookup, fileSet, true); return getBindings(name, resolve, prefixLookup, fileSet, true);
} }
@Override @Override
public IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup, IIndexFileSet fileSet, public IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup, IIndexFileSet fileSet,
boolean checkPointOfDecl) { boolean checkPointOfDecl) {
@ -234,7 +236,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
try { try {
IIndexBinding binding = index.findBinding(ns.getName()); IIndexBinding binding = index.findBinding(ns.getName());
if (binding instanceof ICPPNamespace) { if (binding instanceof ICPPNamespace) {
ICPPNamespaceScope indexNs = ((ICPPNamespace)binding).getNamespaceScope(); ICPPNamespaceScope indexNs = ((ICPPNamespace) binding).getNamespaceScope();
IBinding[] bindings = indexNs.getBindings(name, resolve, prefixLookup); IBinding[] bindings = indexNs.getBindings(name, resolve, prefixLookup);
if (fileSet != null) { if (fileSet != null) {
bindings= fileSet.filterFileLocalBindings(bindings); bindings= fileSet.filterFileLocalBindings(bindings);
@ -252,12 +254,12 @@ abstract public class CPPScope implements ICPPASTInternalScope {
} }
public IBinding[] getBindingsInAST(IASTName name, boolean forceResolve, boolean prefixLookup, public IBinding[] getBindingsInAST(IASTName name, boolean forceResolve, boolean prefixLookup,
boolean checkPointOfDecl) { boolean checkPointOfDecl) {
populateCache(); populateCache();
final char[] c = name.getLookupKey(); final char[] c = name.getLookupKey();
IBinding[] result = null; IBinding[] result = null;
Object obj = null; Object obj = null;
if (prefixLookup) { if (prefixLookup) {
Object[] keys = bindings != null ? bindings.keyArray() : new Object[0]; Object[] keys = bindings != null ? bindings.keyArray() : new Object[0];
@ -278,7 +280,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
} else { } else {
obj = bindings != null ? bindings.get(c) : null; obj = bindings != null ? bindings.get(c) : null;
} }
if (obj != null) { if (obj != null) {
if (obj instanceof ObjectSet<?>) { if (obj instanceof ObjectSet<?>) {
ObjectSet<?> os= (ObjectSet<?>) obj; ObjectSet<?> os= (ObjectSet<?>) obj;
@ -292,12 +294,12 @@ abstract public class CPPScope implements ICPPASTInternalScope {
return ArrayUtil.trim(IBinding.class, result); return ArrayUtil.trim(IBinding.class, result);
} }
private IBinding[] addCandidate(Object candidate, IASTName name, boolean forceResolve, private IBinding[] addCandidate(Object candidate, IASTName name, boolean forceResolve,
boolean checkPointOfDecl, IBinding[] result) { boolean checkPointOfDecl, IBinding[] result) {
if (checkPointOfDecl) { if (checkPointOfDecl) {
IASTTranslationUnit tu= name.getTranslationUnit(); IASTTranslationUnit tu= name.getTranslationUnit();
if (!CPPSemantics.declaredBefore(candidate, name, tu != null && tu.getIndex() != null)) { if (!CPPSemantics.declaredBefore(candidate, name, tu != null && tu.getIndex() != null)) {
if (!(this instanceof ICPPClassScope) || ! LookupData.checkWholeClassScope(name)) if (!(this instanceof ICPPClassScope) || !LookupData.checkWholeClassScope(name))
return result; return result;
} }
} }
@ -310,7 +312,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
simpleName= ((ICPPASTTemplateId) simpleName).getTemplateName(); simpleName= ((ICPPASTTemplateId) simpleName).getTemplateName();
} }
if (forceResolve && candName != name && simpleName != name) { if (forceResolve && candName != name && simpleName != name) {
candName.resolvePreBinding(); // make sure to resolve the template-id candName.resolvePreBinding(); // Make sure to resolve the template-id
binding = simpleName.resolvePreBinding(); binding = simpleName.resolvePreBinding();
} else { } else {
binding = simpleName.getPreBinding(); binding = simpleName.getPreBinding();
@ -321,7 +323,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
return ArrayUtil.append(IBinding.class, result, binding); return ArrayUtil.append(IBinding.class, result, binding);
} }
@Override @Override
public final void populateCache() { public final void populateCache() {
if (!isCached) { if (!isCached) {
@ -329,14 +331,14 @@ abstract public class CPPScope implements ICPPASTInternalScope {
isCached= true; isCached= true;
} }
} }
@Override @Override
public void removeNestedFromCache(IASTNode container) { public void removeNestedFromCache(IASTNode container) {
if (bindings != null) { if (bindings != null) {
removeFromMap(bindings, container); removeFromMap(bindings, container);
} }
} }
private void removeFromMap(CharArrayObjectMap<Object> map, IASTNode container) { private void removeFromMap(CharArrayObjectMap<Object> map, IASTNode container) {
for (int i = 0; i < map.size(); i++) { for (int i = 0; i < map.size(); i++) {
Object o= map.getAt(i); Object o= map.getAt(i);
@ -362,7 +364,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
set.remove(o); set.remove(o);
i--; i--;
} }
} }
} }
} }
@ -386,7 +388,7 @@ abstract public class CPPScope implements ICPPASTInternalScope {
Object o = bindings.get(c); Object o = bindings.get(c);
if (o != null) { if (o != null) {
if (o instanceof ObjectSet) { if (o instanceof ObjectSet) {
((ObjectSet<Object>)o).put(binding); ((ObjectSet<Object>) o).put(binding);
} else { } else {
ObjectSet<Object> set = new ObjectSet<Object>(2); ObjectSet<Object> set = new ObjectSet<Object>(2);
set.put(o); set.put(o);