diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog index 979027ef9c6..96c1b135c25 100644 --- a/core/org.eclipse.cdt.core.tests/ChangeLog +++ b/core/org.eclipse.cdt.core.tests/ChangeLog @@ -1,3 +1,6 @@ +2003-07-31 Victor Mozgin + Moved testBug39540() from ASTFailedTests.java to QuickParseASTTests.java. + 2003-07-30 Hoda Amer The CModelElementsTests has the pointer to function test back in its original place (a variable) diff --git a/core/org.eclipse.cdt.core.tests/failures/org/eclipse/cdt/core/parser/failedTests/ASTFailedTests.java b/core/org.eclipse.cdt.core.tests/failures/org/eclipse/cdt/core/parser/failedTests/ASTFailedTests.java index 5c883c8ff26..acd660ee7ec 100644 --- a/core/org.eclipse.cdt.core.tests/failures/org/eclipse/cdt/core/parser/failedTests/ASTFailedTests.java +++ b/core/org.eclipse.cdt.core.tests/failures/org/eclipse/cdt/core/parser/failedTests/ASTFailedTests.java @@ -106,10 +106,6 @@ public class ASTFailedTests extends BaseASTTest { assertCodeFailsParse("template C::operator int ();"); } - public void testBug39540() throws Exception - { - assertCodeFailsParse("class {} const null;"); - } public void testBug39542() throws Exception { assertCodeFailsParse("void f(int a, struct {int b[a];} c) {}"); 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 1b7649b61ae..9524730daa0 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 @@ -1757,4 +1757,10 @@ public class QuickParseASTTests extends BaseASTTest parse("class N1::N2::B : public A {};"); assertTrue( quickParseCallback.getCompilationUnit().getDeclarations().hasNext() ); } + + public void testBug39540() throws Exception + { + parse("class {} const null;"); + assertTrue( quickParseCallback.getCompilationUnit().getDeclarations().hasNext() ); + } } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/ChangeLog b/core/org.eclipse.cdt.core/parser/ChangeLog index 6f9fdc54a74..a57a585740c 100644 --- a/core/org.eclipse.cdt.core/parser/ChangeLog +++ b/core/org.eclipse.cdt.core/parser/ChangeLog @@ -1,3 +1,6 @@ +2003-07-31 Victor Mozgin + Fixed PR 39540 : Parser fails on const qualifier after class specifier. + 2003-07-30 Victor Mozgin Fixed PR 39532 : Parser fails on fully-qualified class names. 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 6c0c72654a4..1625028f496 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 @@ -1359,7 +1359,7 @@ public class Parser implements IParser ITokenDuple duple = new TokenDuple(first, last); sdw.setTypeName(duple); - return; + break; case IToken.tCOLONCOLON : consume(IToken.tCOLONCOLON); // handle nested later: @@ -1408,7 +1408,8 @@ public class Parser implements IParser try { classSpecifier(sdw); - return; + flags.setEncounteredTypename(true); + break; } catch (Backtrack bt) { @@ -1429,6 +1430,7 @@ public class Parser implements IParser try { enumSpecifier(sdw); + flags.setEncounteredTypename(true); break; } catch (Backtrack bt)