From 97dcd10e64ede8fdc3d79435caa63be69c403274 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Thu, 24 Jun 2004 21:21:19 +0000 Subject: [PATCH] Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=68409 --- .../complete/ASTElaboratedTypeSpecifier.java | 21 +++++++++++++++++++ .../ast/complete/CompleteParseASTFactory.java | 6 ++---- .../core/parser/token/TokenFactory.java | 3 ++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java index d8f8024ba56..67a3b54c998 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java @@ -186,4 +186,25 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora public int getNameLineNumber() { return offsets.getNameLineNumber(); } + + + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals(Object obj) { + if( obj == null ) return false; + if( ! (obj instanceof IASTElaboratedTypeSpecifier )) return false; + IASTElaboratedTypeSpecifier elab = (IASTElaboratedTypeSpecifier) obj; + if( elab.getClassKind() != getClassKind() ) return false; + if( elab.getName() != getName() ) return false; + return true; + } + + /* (non-Javadoc) + * @see java.lang.Object#hashCode() + */ + public int hashCode() { + String coded =getName().toString(); + return coded.hashCode(); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java index b432b898b7f..d380fd40141 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java @@ -3251,7 +3251,8 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto checkSymbol = ((ITemplateSymbol)checkSymbol).getTemplatedSymbol(); } if (checkSymbol.getASTExtension().getPrimaryDeclaration() instanceof IASTClassSpecifier - || checkSymbol.getASTExtension().getPrimaryDeclaration() instanceof IASTEnumerationSpecifier) { + || checkSymbol.getASTExtension().getPrimaryDeclaration() instanceof IASTEnumerationSpecifier || + checkSymbol.getASTExtension().getPrimaryDeclaration() instanceof IASTElaboratedTypeSpecifier ) { ASTElaboratedTypeSpecifier elab = new ASTElaboratedTypeSpecifier( checkSymbol, kind, startingOffset, startingLine, name .getFirstToken().getOffset(), name @@ -3261,9 +3262,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto attachSymbolExtension(checkSymbol, elab, !isForewardDecl); return elab; } - if (checkSymbol.getASTExtension().getPrimaryDeclaration() instanceof IASTElaboratedTypeSpecifier) - return (IASTElaboratedTypeSpecifier) checkSymbol - .getASTExtension().getPrimaryDeclaration(); } else { handleProblem(IProblem.SEMANTIC_NAME_NOT_FOUND, newSymbolName, nameToken.getOffset(), nameToken.getEndOffset(), nameToken diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TokenFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TokenFactory.java index c190bdb03a2..f89acf3d580 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TokenFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TokenFactory.java @@ -58,7 +58,8 @@ public class TokenFactory { public static ITokenDuple createTokenDuple( IToken first, IToken last, List templateArgLists ) { - if( (first == last) && ( templateArgLists == null ) && ( first instanceof ITokenDuple )) return (ITokenDuple) first; + if( (first == last) && ( templateArgLists == null ) && ( first instanceof ITokenDuple )) + return (ITokenDuple) first; if( templateArgLists != null && !templateArgLists.isEmpty()) return new TemplateTokenDuple( first, last, templateArgLists ); return new BasicTokenDuple( first, last );