From 1c6c93560ac2cfe6f78ff5b297c43b796774d32c Mon Sep 17 00:00:00 2001 From: John Camelon Date: Thu, 4 Sep 2003 14:39:20 +0000 Subject: [PATCH] Patch for Hoda Amer Core: - Changed the ASTExpression of the complete package to store the whole ITokenDuple for the typeId instead of just the string. - Changed the ASTExpression in both quick and complete packages and deleted the "id" parameter. - Added partial solution to bug #42453: Exception result types not computed. Now they are computed for simple types only. Tests: Call to ASTExpression getTypeId() changed to getTypeIdString(). UI: Solution to bug#42414 :Extraneous semi-colons in generated class methods --- core/org.eclipse.cdt.core.tests/ChangeLog | 3 + .../core/parser/tests/QuickParseASTTests.java | 2 +- core/org.eclipse.cdt.core/ChangeLog | 8 ++ .../cdt/core/parser/ast/IASTExpression.java | 5 +- .../cdt/core/parser/ast/IASTFactory.java | 1 - .../cdt/internal/core/parser/Parser.java | 43 +----- .../parser/ast/complete/ASTExpression.java | 36 +++-- .../ast/complete/CompleteParseASTFactory.java | 131 ++++++++++++++---- .../core/parser/ast/quick/ASTExpression.java | 14 +- .../ast/quick/QuickParseASTFactory.java | 4 +- core/org.eclipse.cdt.ui/ChangeLog | 3 + .../cdt/ui/wizards/NewClassWizardPage.java | 8 +- 12 files changed, 156 insertions(+), 102 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog index bad9bc32f68..918efee3134 100644 --- a/core/org.eclipse.cdt.core.tests/ChangeLog +++ b/core/org.eclipse.cdt.core.tests/ChangeLog @@ -1,3 +1,6 @@ +2003-09-04 Hoda Amer + Call to ASTExpression getTypeId() changed to getTypeIdString(). + 2003-09-03 Andrew Niefer Modified ParserSymbolTableTest.testConstructors to test > 2 constructors diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/QuickParseASTTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/QuickParseASTTests.java index fdca3762527..3cbea110f67 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/QuickParseASTTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/QuickParseASTTests.java @@ -1429,7 +1429,7 @@ public class QuickParseASTTests extends BaseASTTest assertFalse( enumerators.hasNext() ); assertEquals( enumerator.getName(), "isPointer"); assertEquals( enumerator.getInitialValue().getExpressionKind(), IASTExpression.Kind.ID_EXPRESSION ); - assertEquals( enumerator.getInitialValue().getTypeId(), "PointerTraits::result"); + assertEquals( enumerator.getInitialValue().getTypeIdString(), "PointerTraits::result"); } public void testBug36690() throws Exception { diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 116f358a9dc..c5c1ad039c0 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,11 @@ +2003-09-04 Hoda Amer + - Changed the ASTExpression of the complete package to store the + whole ITOkenDuple for the typeId instead of just the string. + - Changed the ASTExpression in both quick and complete packages and + deleted the "id" parameter. + - Added partial solution to bug #42453: Exception result types not computed. + Now they are computed for simple types only. + 2003-09-03 David Inglis Added shared preference key for error parsers diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java index 0bb755cae86..5d52a7fbf68 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java @@ -119,7 +119,7 @@ public interface IASTExpression extends ISourceElementCallbackDelegate { super(enumValue); } - + } public interface IASTNewExpressionDescriptor @@ -136,8 +136,7 @@ public interface IASTExpression extends ISourceElementCallbackDelegate public IASTExpression getRHSExpression(); public IASTExpression getThirdExpression(); public String getLiteralString(); - public String getTypeId(); - public String getId(); + public String getTypeIdString(); public IASTNewExpressionDescriptor getNewExpressionDescriptor(); public int evaluateExpression() throws ExpressionEvaluationException; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java index f8111864ee8..054feb44a3a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java @@ -103,7 +103,6 @@ public interface IASTFactory IASTExpression lhs, IASTExpression rhs, IASTExpression thirdExpression, - IToken id, ITokenDuple typeId, String literal, IASTNewExpressionDescriptor newDescriptor) throws ASTSemanticException; public IASTExpression.IASTNewExpressionDescriptor createNewDescriptor(List newPlacementExpressions,List newTypeIdExpressions,List newInitializerExpressions); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java index a7ded797dd7..e19867fd7b4 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java @@ -2743,7 +2743,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -2827,7 +2826,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -2861,7 +2859,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -2894,7 +2891,6 @@ public class Parser implements IParser secondExpression, thirdExpression, null, - null, "", null); } catch (ASTSemanticException e) @@ -2929,7 +2925,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -2962,7 +2957,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -2996,7 +2990,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3030,7 +3023,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3063,7 +3055,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3104,7 +3095,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3181,7 +3171,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3225,7 +3214,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3268,7 +3256,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3322,7 +3309,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3364,7 +3350,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3413,7 +3398,6 @@ public class Parser implements IParser castExpression, null, null, - null, duple, "", null); } @@ -3527,7 +3511,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3660,7 +3643,7 @@ public class Parser implements IParser { return astFactory.createExpression( scope, IASTExpression.Kind.NEW_TYPEID, - null, null, null, null, typeId, "", + null, null, null, typeId, "", astFactory.createNewDescriptor(newPlacementExpressions, newTypeIdExpressions, newInitializerExpressions)); } catch (ASTSemanticException e) @@ -3705,7 +3688,7 @@ public class Parser implements IParser { return astFactory.createExpression( scope, IASTExpression.Kind.NEW_TYPEID, - null, null, null, null, typeId, "", + null, null, null, typeId, "", astFactory.createNewDescriptor(newPlacementExpressions, newTypeIdExpressions, newInitializerExpressions)); } catch (ASTSemanticException e) @@ -3729,7 +3712,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -3811,7 +3793,6 @@ public class Parser implements IParser null, null, null, - null, d, "", null); } @@ -3830,7 +3811,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e1) @@ -3970,7 +3950,6 @@ public class Parser implements IParser lhs, null, null, - null, typeId, "", null); } @@ -4002,7 +3981,6 @@ public class Parser implements IParser firstExpression, secondExpression, null, - null, null, "", null); } @@ -4027,7 +4005,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e3) @@ -4048,7 +4025,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e1) @@ -4069,7 +4045,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e4) @@ -4099,7 +4074,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e5) @@ -4129,7 +4103,6 @@ public class Parser implements IParser secondExpression, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -4163,7 +4136,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -4189,7 +4161,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e) @@ -4220,7 +4191,6 @@ public class Parser implements IParser null, null, null, - null, t.getImage(), null); } catch (ASTSemanticException e1) @@ -4239,7 +4209,6 @@ public class Parser implements IParser null, null, null, - null, t.getImage(), null); } catch (ASTSemanticException e2) @@ -4252,7 +4221,7 @@ public class Parser implements IParser t = consume(); try { - return astFactory.createExpression( scope, IASTExpression.Kind.PRIMARY_STRING_LITERAL, null, null, null, null, null, t.getImage(), null ); + return astFactory.createExpression( scope, IASTExpression.Kind.PRIMARY_STRING_LITERAL, null, null, null, null, t.getImage(), null ); } catch (ASTSemanticException e5) { @@ -4270,7 +4239,6 @@ public class Parser implements IParser IASTExpression.Kind.PRIMARY_BOOLEAN_LITERAL, null, null, - null, null, null, t.getImage(), null); @@ -4294,7 +4262,6 @@ public class Parser implements IParser null, null, null, - null, t.getImage(), null); } catch (ASTSemanticException e4) @@ -4314,7 +4281,6 @@ public class Parser implements IParser null, null, null, - null, "", null); } catch (ASTSemanticException e7) @@ -4334,7 +4300,6 @@ public class Parser implements IParser lhs, null, null, - null, null, "", null); } @@ -4353,7 +4318,6 @@ public class Parser implements IParser IASTExpression.Kind.ID_EXPRESSION, null, null, - null, null, duple, "", null); @@ -4371,7 +4335,6 @@ public class Parser implements IParser IASTExpression.Kind.PRIMARY_EMPTY, null, null, - null, null, null, "", null); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTExpression.java index 58a07eaf6d1..eea993e4bb7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTExpression.java @@ -10,9 +10,11 @@ ***********************************************************************/ package org.eclipse.cdt.internal.core.parser.ast.complete; +import java.util.ArrayList; import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.ExpressionEvaluationException; import org.eclipse.cdt.core.parser.ast.IASTExpression; @@ -27,15 +29,15 @@ public class ASTExpression implements IASTExpression private final IASTExpression rhs; private final IASTExpression thirdExpression; private final String literal; - private final String typeId; - private final String id; + private final ITokenDuple typeId; private final IASTNewExpressionDescriptor newDescriptor; private final List references; + private List resultType; /** * */ public ASTExpression( Kind kind, IASTExpression lhs, IASTExpression rhs, - IASTExpression thirdExpression, String literal, String typeId, String id, IASTNewExpressionDescriptor newDescriptor, List references ) + IASTExpression thirdExpression, ITokenDuple typeId, String literal, IASTNewExpressionDescriptor newDescriptor, List references ) { this.kind = kind; this.lhs = lhs; @@ -43,9 +45,9 @@ public class ASTExpression implements IASTExpression this.thirdExpression = thirdExpression; this.literal = literal; this.typeId = typeId; - this.id = id; this.newDescriptor = newDescriptor; this.references = references; + resultType = new ArrayList(); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#getExpressionKind() @@ -85,16 +87,16 @@ public class ASTExpression implements IASTExpression /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#getTypeId() */ - public String getTypeId() + public String getTypeIdString() { - return typeId; + return typeId == null ? "" : typeId.toString(); } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTExpression#getId() + /* + * returns the type id token */ - public String getId() + public ITokenDuple getTypeId() { - return id; + return typeId; } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#getNewExpressionDescriptor() @@ -139,4 +141,18 @@ public class ASTExpression implements IASTExpression { } + /** + * @return + */ + public List getResultType() { + return resultType; + } + + /** + * @param i + */ + public void setResultType(List i) { + resultType = i; + } + } 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 5e956f1db06..be498fcfb6d 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 @@ -126,7 +126,11 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto } - protected ISymbol lookupQualifiedName( IContainerSymbol startingScope, ITokenDuple name, List references, boolean throwOnError ) throws ASTSemanticException + protected ISymbol lookupQualifiedName( IContainerSymbol startingScope, ITokenDuple name, List references, boolean throwOnError ) throws ASTSemanticException{ + return lookupQualifiedName(startingScope, name, TypeInfo.t_any, null, references, throwOnError); + } + + protected ISymbol lookupQualifiedName( IContainerSymbol startingScope, ITokenDuple name, TypeInfo.eType type, List parameters, List references, boolean throwOnError ) throws ASTSemanticException { ISymbol result = null; IToken firstSymbol = null; @@ -143,7 +147,10 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto firstSymbol = name.getFirstToken(); try { - result = startingScope.lookup( firstSymbol.getImage()); + if(type == TypeInfo.t_function) + result = startingScope.unqualifiedFunctionLookup( firstSymbol.getImage(), new LinkedList(parameters)); + else + result = startingScope.lookup( firstSymbol.getImage()); if( result != null ) references.add( createReference( result, firstSymbol.getImage(), firstSymbol.getOffset() )); else @@ -160,7 +167,10 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto throw new ASTSemanticException(); try { - result = pst.getCompilationUnit().lookup( name.getLastToken().getImage() ); + if(type == TypeInfo.t_function) + result = pst.getCompilationUnit().unqualifiedFunctionLookup( name.getLastToken().getImage(), new LinkedList(parameters)); + else + result = pst.getCompilationUnit().lookup( name.getLastToken().getImage() ); references.add( createReference( result, name.getLastToken().getImage(), name.getLastToken().getOffset() )); } catch( ParserSymbolTableException e) @@ -181,7 +191,10 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto try { if( t == name.getLastToken() ) - result = ((IContainerSymbol)result).qualifiedLookup( t.getImage() ); + if(type == TypeInfo.t_function) + result = ((IContainerSymbol)result).qualifiedFunctionLookup( t.getImage(), new LinkedList(parameters) ); + else + result = ((IContainerSymbol)result).qualifiedLookup( t.getImage() ); else result = ((IContainerSymbol)result).lookupNestedNameSpecifier( t.getImage() ); references.add( createReference( result, t.getImage(), t.getOffset() )); @@ -391,9 +404,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto { extension.addDefinition( astSymbol ); } - - - } /* (non-Javadoc) @@ -670,7 +680,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto IASTExpression lhs, IASTExpression rhs, IASTExpression thirdExpression, - IToken id, ITokenDuple typeId, String literal, IASTNewExpressionDescriptor newDescriptor) throws ASTSemanticException { @@ -699,33 +708,95 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto //look up id & add to references IContainerSymbol startingScope = scopeToSymbol( scope ); - - if( id != null ) - { - try - { - ISymbol s = startingScope.lookup( id.getImage() ); - if( s != null ) - references.add( createReference( s, id.getImage(), id.getOffset() )); - else - throw new ASTSemanticException(); - } - catch (ParserSymbolTableException e) - { - throw new ASTSemanticException(); - } - } - + //look up typeId & add to references if( typeId != null ) lookupQualifiedName( startingScope, typeId, references, false ); + + if (kind == IASTExpression.Kind.POSTFIX_FUNCTIONCALL){ + ITokenDuple functionId = ((ASTExpression)lhs).getTypeId(); + List parameters = ((ASTExpression)rhs).getResultType(); + lookupQualifiedName(startingScope, functionId, TypeInfo.t_function, parameters, references, false); + } - return new ASTExpression( kind, lhs, rhs, thirdExpression, - id == null ? "" : id.getImage(), - typeId == null ? "" : typeId.toString(), - literal, newDescriptor, references); + ASTExpression expression = new ASTExpression( kind, lhs, rhs, thirdExpression, + typeId, literal, newDescriptor, references); + + expression.setResultType (getExpressionResultType(expression)); + + return expression; } + protected List getExpressionResultType(IASTExpression expression){ + List result = new ArrayList(); + + if (expression.getExpressionKind() == IASTExpression.Kind.PRIMARY_EMPTY) { + TypeInfo info = new TypeInfo(); + info.setType(TypeInfo.t_void); + result.add(info); + return result; + } + if (expression.getExpressionKind() == IASTExpression.Kind.PRIMARY_INTEGER_LITERAL) { + TypeInfo info = new TypeInfo(); + info.setType(TypeInfo.t_int); + result.add(info); + return result; + } + if (expression.getExpressionKind() == IASTExpression.Kind.PRIMARY_CHAR_LITERAL){ + TypeInfo info = new TypeInfo(); + info.setType(TypeInfo.t_char); + result.add(info); + return result; + } + if (expression.getExpressionKind() == IASTExpression.Kind.PRIMARY_FLOAT_LITERAL){ + TypeInfo info = new TypeInfo(); + info.setType(TypeInfo.t_float); + result.add(info); + return result; + } + if (expression.getExpressionKind() == IASTExpression.Kind.PRIMARY_BOOLEAN_LITERAL){ + TypeInfo info = new TypeInfo(); + info.setType(TypeInfo.t_bool); + result.add(info); + return result; + } + if ((expression.getExpressionKind() == IASTExpression.Kind.ADDITIVE_PLUS) + || (expression.getExpressionKind() == IASTExpression.Kind.ADDITIVE_MINUS) ){ + ASTExpression right = (ASTExpression)expression.getLHSExpression(); + ASTExpression left = (ASTExpression)expression.getRHSExpression(); + if((right != null) && (left != null)){ + TypeInfo rightType =(TypeInfo)right.getResultType().iterator().next(); + TypeInfo leftType =(TypeInfo)left.getResultType().iterator().next(); + if ( rightType.equals(leftType) ){ + result.add(rightType); + } else { + // TODO: two different types added or subtracted + } + } + } + if(expression.getExpressionKind() == IASTExpression.Kind.EXPRESSIONLIST){ + if(expression.getLHSExpression() != null){ + Iterator i = ((ASTExpression)expression.getLHSExpression()).getResultType().iterator(); + while (i.hasNext()){ + result.add(i.next()); + } + } + if(expression.getRHSExpression() != null){ + Iterator i = ((ASTExpression)expression.getRHSExpression()).getResultType().iterator(); + while (i.hasNext()){ + result.add(i.next()); + } + } + return result; + } + if(expression.getExpressionKind() == IASTExpression.Kind.POSTFIX_FUNCTIONCALL){ + TypeInfo type = new TypeInfo(); + type.setType(TypeInfo.t_function); + result.add(type); + return result; + } + return result; + } protected void getExpressionReferences(IASTExpression expression, List references) { @@ -937,7 +1008,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto (IParameterizedSymbol) lookupQualifiedName(parentScope, functionName, TypeInfo.t_function, parameters, 0, functionReferences, false); if(methodDeclaration != null){ ASTMethodReference reference = (ASTMethodReference) functionReferences.iterator().next(); - visibility = ((IASTMethod)reference.getReferencedElement()).getVisiblity(); + visibility = ((IASTMethod)reference.getReferencedElement()).getVisiblity(); } return createMethod(scope, functionName, parameters, returnType, exception, isInline, isFriend, isStatic, startOffset, offset, diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTExpression.java index f7acb1b3b27..b02bc998d89 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTExpression.java @@ -22,7 +22,7 @@ public class ASTExpression implements IASTExpression { private final Kind kind; private final IASTExpression lhs, rhs, third; - private final String id, typeId, literal; + private final String typeId, literal; private final IASTNewExpressionDescriptor newDescriptor; /** @@ -33,13 +33,12 @@ public class ASTExpression implements IASTExpression { * @param typeId * @param literal */ - public ASTExpression(Kind kind, IASTExpression lhs, IASTExpression rhs, IASTExpression third, String id, String typeId, String literal, IASTNewExpressionDescriptor newDescriptor) { + public ASTExpression(Kind kind, IASTExpression lhs, IASTExpression rhs, IASTExpression third, String typeId, String literal, IASTNewExpressionDescriptor newDescriptor) { this.kind = kind; this.lhs =lhs; this.rhs = rhs; this.third = third; this.typeId = typeId; - this.id = id; this.literal = literal; this.newDescriptor = newDescriptor; } @@ -75,17 +74,10 @@ public class ASTExpression implements IASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#getTypeId() */ - public String getTypeId() { + public String getTypeIdString() { return typeId; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTExpression#getId() - */ - public String getId() { - return id; - } - /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#getNewExpressionDescriptor() */ diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java index 8b5ef8ce5d6..302abc488ec 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java @@ -149,8 +149,8 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createExpression(org.eclipse.cdt.core.parser.ast.IASTExpression.ExpressionKind, org.eclipse.cdt.core.parser.ast.IASTExpression, org.eclipse.cdt.core.parser.ast.IASTExpression, java.lang.String, java.lang.String, java.lang.String) */ - public IASTExpression createExpression(IASTScope scope, Kind kind, IASTExpression lhs, IASTExpression rhs, IASTExpression thirdExpression, IToken id, ITokenDuple typeId, String literal, IASTNewExpressionDescriptor newDescriptor) { - return new ASTExpression( kind, lhs, rhs, thirdExpression, id == null ? "" : id.getImage(), typeId == null ? "" : typeId.toString(), literal, newDescriptor ); + public IASTExpression createExpression(IASTScope scope, Kind kind, IASTExpression lhs, IASTExpression rhs, IASTExpression thirdExpression, ITokenDuple typeId, String literal, IASTNewExpressionDescriptor newDescriptor) { + return new ASTExpression( kind, lhs, rhs, thirdExpression, typeId == null ? "" : typeId.toString(), literal, newDescriptor ); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 7ad779c24a2..9b6fbeb6e6e 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -6,6 +6,9 @@ * src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java * src/org/eclipse/cdt/internal/ui/search/CSearchMessages.properties +2003-09-04 Hoda Amer + - Solution to bug#42414 :Extraneous semi-colons in generated class methods + 2003-09-03 David Inglis Fixed parser block to save ids properly. Use shared preference key for error parsers. diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java index 17cafd48f8b..725acb47a22 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java @@ -811,7 +811,7 @@ public class NewClassWizardPage extends WizardPage implements Listener { text.append(getNewClassName()); text.append("()"); if(isInline()){ - text.append(" {};"); + text.append(" {}"); text.append(lineDelimiter); }else { text.append(";"); @@ -827,7 +827,7 @@ public class NewClassWizardPage extends WizardPage implements Listener { text.append(getNewClassName()); text.append("()"); if(isInline()){ - text.append(" {};"); + text.append(" {}"); text.append(lineDelimiter); }else { text.append(";"); @@ -864,7 +864,7 @@ public class NewClassWizardPage extends WizardPage implements Listener { text.append(getNewClassName()); text.append("()"); text.append(lineDelimiter); - text.append("{};"); + text.append("{}"); text.append(lineDelimiter); // destructor @@ -873,7 +873,7 @@ public class NewClassWizardPage extends WizardPage implements Listener { text.append(getNewClassName()); text.append("()"); text.append(lineDelimiter); - text.append("{};"); + text.append("{}"); text.append(lineDelimiter); return text.toString(); }