From dc9f25b601adfa098be8a0b894c2412721dafb56 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Thu, 10 Jun 2004 19:33:38 +0000 Subject: [PATCH] Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=60264 --- .../eclipse/cdt/core/parser/tests/SelectionParseTest.java | 8 ++++++++ .../cdt/internal/core/parser/ExpressionParser.java | 1 + .../org/eclipse/cdt/internal/core/parser/Parser.java | 1 + 3 files changed, 10 insertions(+) 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 e1f9fe2790c..68253696b52 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 @@ -163,6 +163,14 @@ public class SelectionParseTest extends SelectionParseBaseTest { IASTNamespaceDefinition namespace = (IASTNamespaceDefinition) node; assertEquals( namespace.getName(), "Muppets"); //$NON-NLS-1$ assertEquals( namespace.getStartingLine(), 1 ); + + index = code.indexOf( "e Muppets") + 2; //$NON-NLS-1$ + node = parse( code, index, index + 7 ); + assertTrue( node instanceof IASTNamespaceDefinition ); + namespace = (IASTNamespaceDefinition) node; + assertEquals( namespace.getName(), "Muppets"); //$NON-NLS-1$ + assertEquals( namespace.getStartingLine(), 1 ); + } public void testBug61613() throws Exception diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ExpressionParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ExpressionParser.java index a9e0e04a78e..1505e6ade0c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ExpressionParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ExpressionParser.java @@ -2963,6 +2963,7 @@ public class ExpressionParser implements IExpressionParser, IParserData { */ public IToken identifier() throws EndOfFileException, BacktrackException { IToken first = consume(IToken.tIDENTIFIER); // throws backtrack if its not that + if( first instanceof ITokenDuple ) setGreaterNameContext((ITokenDuple) first); return first; } /* (non-Javadoc) 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 4bb37f81d7a..7414ff648c0 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 @@ -952,6 +952,7 @@ public abstract class Parser extends ExpressionParser implements IParser } namespaceDefinition.enterScope( requestor, astFactory.getReferenceManager() ); setCompletionValues(scope,CompletionKind.VARIABLE_TYPE, KeywordSetKey.DECLARATION ); + endDeclaration( namespaceDefinition ); namespaceDeclarationLoop : while (LT(1) != IToken.tRBRACE) { int checkToken = LA(1).hashCode();