From 3f436ae1eb5105a8efe56fe0cd860b42f43ef468 Mon Sep 17 00:00:00 2001 From: Andrew Niefer Date: Mon, 5 Apr 2004 20:52:21 +0000 Subject: [PATCH] fix bug 54169 - Search fails to find enum declaration --- core/org.eclipse.cdt.core.tests/ChangeLog | 3 +++ .../search/tests/ClassDeclarationPatternTests.java | 14 ++++++++++++++ core/org.eclipse.cdt.core/search/ChangeLog | 3 +++ .../search/matching/ClassDeclarationPattern.java | 4 +++- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog index 3b5f0d5adc3..2ab8904457c 100644 --- a/core/org.eclipse.cdt.core.tests/ChangeLog +++ b/core/org.eclipse.cdt.core.tests/ChangeLog @@ -1,3 +1,6 @@ +2004-04-05 Andrew Niefer + added search/org/eclipse/cdt/core/search/tests/ClassDeclarationPatternTests.testBug54169() + 2004-04-05 Andrew Niefer Added parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTemplateTest.testTemplateParametersInExpressions diff --git a/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ClassDeclarationPatternTests.java b/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ClassDeclarationPatternTests.java index 9b1946d5cb0..6d8ed35a4ef 100644 --- a/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ClassDeclarationPatternTests.java +++ b/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ClassDeclarationPatternTests.java @@ -278,5 +278,19 @@ public class ClassDeclarationPatternTests extends BaseSearchTest implements ICSe assertEquals( matches.size(), 2 ); } + + public void testBug54169(){ + ICSearchPattern pattern = SearchEngine.createSearchPattern( "e", TYPE, DECLARATIONS, true ); + search( workspace, pattern, scope, resultCollector ); + Set matches = resultCollector.getSearchResults(); + + assertEquals( matches.size(), 1 ); + + pattern = SearchEngine.createSearchPattern( "NS_B", TYPE, DECLARATIONS, true ); + search( workspace, pattern, scope, resultCollector ); + matches = resultCollector.getSearchResults(); + + assertEquals( matches.size(), 1 ); + } } diff --git a/core/org.eclipse.cdt.core/search/ChangeLog b/core/org.eclipse.cdt.core/search/ChangeLog index 6ad215b6581..1e1c8bc55be 100644 --- a/core/org.eclipse.cdt.core/search/ChangeLog +++ b/core/org.eclipse.cdt.core/search/ChangeLog @@ -1,3 +1,6 @@ +2004-04-05 Andrew Niefer + fix bug 54169, TYPE includes enum & typedef, handle that in ClassDeclarationPattern.matchLevel + 2004-03-24 Bogdan Gheorghe Modified BasicSearchMatch to keep track of what files contained the match in order to create file links to support external file markers. diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java index 493841508c9..1a9eb4e9880 100644 --- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java +++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java @@ -80,7 +80,9 @@ public class ClassDeclarationPattern extends CSearchPattern { if( !( node instanceof IASTEnumerationSpecifier ) ) return IMPOSSIBLE_MATCH; } else if ( !( node instanceof IASTClassSpecifier ) && - !( node instanceof IASTElaboratedTypeSpecifier ) ) + !( node instanceof IASTElaboratedTypeSpecifier ) && + !( node instanceof IASTTypedefDeclaration ) && + !( node instanceof IASTEnumerationSpecifier) ) { return IMPOSSIBLE_MATCH; }