From 895266aebe1ac1328d268fb2a371efd7e2437cdb Mon Sep 17 00:00:00 2001 From: John Camelon Date: Wed, 26 May 2004 01:11:00 +0000 Subject: [PATCH] Partial fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=63966 --- .../cdt/core/parser/tests/SelectionParseTest.java | 13 +++++++++++++ .../ast/complete/CompleteParseASTFactory.java | 13 ++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java index e3fd47ecba6..47759dd8a54 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java @@ -262,4 +262,17 @@ public class SelectionParseTest extends SelectionParseBaseTest { IASTMethod constructor = (IASTMethod) node; assertTrue( constructor.isConstructor() ); } + + public void testBug63966() throws Exception + { + Writer writer = new StringWriter(); + writer.write( "void foo(int a) {}\n" ); //$NON-NLS-1$ + writer.write( "void foo(long a) {}\n" ); //$NON-NLS-1$ + writer.write( "int main(int argc, char **argv) {\n" ); //$NON-NLS-1$ + writer.write( "foo(1); \n }" ); //$NON-NLS-1$ + String code = writer.toString(); + int startIndex = code.indexOf( "foo(1)"); //$NON-NLS-1$ + IASTNode node = parse( code, startIndex, startIndex + 3 ); + + } } 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 6dbf9014e3e..ecb71b3ea95 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 @@ -118,7 +118,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto static { - SUBSCRIPT = new ArrayList(); + SUBSCRIPT = new ArrayList(1); SUBSCRIPT.add( TypeInfo.OperatorExpression.subscript ); } @@ -3456,6 +3456,17 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto return null; } + } + else if( expression.getExpressionKind() == Kind.POSTFIX_FUNCTIONCALL ) + { + try { + ISymbol symbol = getExpressionSymbol( scope, expression.getExpressionKind(), expression.getLHSExpression(), expression.getRHSExpression(), null, null ); + return symbol.getASTExtension().getPrimaryDeclaration(); + } catch (ASTSemanticException e) { + return null; + } + + } else {