1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 22:52:11 +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

@ -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,7 +51,7 @@ 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$
@ -60,13 +60,14 @@ abstract public class CPPScope implements ICPPASTInternalScope {
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,7 +90,7 @@ 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;
@ -101,7 +102,7 @@ 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;
} }
@ -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,7 +157,7 @@ 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,
@ -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();