This patch:
- changes the indexer to use whatever source/header extensions are defined in CModelManager
- updated the search shortcut so that Ctrl + H will bring up the C/C++ search in a source/header extension file
- flushes the CDT log file after each index merge (ie. each time the indexer completes an index)
core:
PST changes:
- modify lookupConstructor to copy the constructor list before resolving
on it
- modify checkUserDefinedConversionSequence the same way
- modify isValidFunctionOverload to check for forward declarations
core.tests:
- added testBug43951 to CompleteParseASTTest
Search filtering was broken, it would have become more obvious when
searching larger projects with includes.
core:
-modify BasicSearchMatch.equals()
tests:
modified OtherPatternTests.testBug42911() and renamed it
testBug42911_43988
Bug 43450 - Path strings containing backslashes need quoting by hand
The user needs to input strings in whatever manner necessary for their
build tools to work. If that means quoting them, then quote them.
However, if the user does quote them, then the scanner needs to handle
that when looking for include files:
core:
-modify Scanner.handleInclusion
core.tests:
- added testBug43450 to ManagedBuildTests.java
- added a user include to plugin.xml
Here's a patch that creates and manages a CDT log file in the .metadata\.plugins\org.eclipse.cdt.core folder. This log file, for now, will contain indexer failure messages and parser failure messages - particularly inclusion failures. These messages were being logged to the PDE error log which, given the number of failures that we can expect on some files, was filling up rather quickly. I put a 5MB limit on the CDT log file after which it gets deleted and a new one gets created. The intent of this log file is to help a user figure out why something isn't being indexed properly - the usual reasons are: i) can't find an include file, ii) symbols not defined.
Also in this patch are 2 minor UI fixes: i) dedicated to Brent - Ctrl+H now brings up the C++ Search Dialog for all C Editor supported extensions, and ii) especially for Alain - F3 will perform a Open Declarations.
Core:
-fix bug43862 - Cannot find macro delcarations using all occurences.
* modified CSearchPattern.createMacroPattern()
Core.tests:
Updated OtherPatternTests::testMacroPattern() to test for bug43862
Core:
PST changes for bug 43503 - parser needs to know the different between
ambiguous functions
and no functions when no parameter information is provided
- throw r_UnableToResolveFunction if we have more than 1 function
and no parameter info was given
- handle this case in addUsingDeclaration.
* note that r_UnableToResolveFunction doesn't necessarily mean
ambiguous if we had enough information
Core.Tests:
added testBug43503_AmbiguousUsing() and
testBug43503_UnableToResolveFunction() to ParserSymbolTableTest
Core:
-bug42911 - Search: cannot find beyond use of data member
- fix NPE's in BasicSearchMatch.equals & hashCode
TESTS:
-added testBug42911 to OtherPatternTests
core:
- modify CSearchPattern.scanForNames to use same naming convention as
TokenDuple.toString()
- modify MatchLocator.report to use
IASTOffsetableNamedElement.getNameEndOffset()
core.tests:
- added testBug43062 and testConstructorDestructor to
FunctionMethodPatternTests
- modified resources/search/classDecl.cpp & include.h to include more
operators and a constructor
Here's a patch that simplifies how workspace scopes are built - instead of getting info from the CModelManager, we go straight to the workspace. This will improve shutdown/search performance.
Core:
- fixed bug 43834 : Empty Parameter list and parameter list taking one
void do not match
- fix NPE if IScannerInfoProvider returns null IScannerInfo
Tests:
- added testbug43834 to ParserSymbolTableTest
Continued work on Bug 43062 : Outline is confused on operator methods containing spaces
Partial fix for Bug 43680 : Fix Parser Error Handling
TEST
Added testErrorHandling_1() to CompleteParseASTTest.java.
Fixed Bug 43644 : 6 triangle icons appearing in outline viewer when typing an error
Fixed Bug 43062 : Outline is confused on operator methods containing spaces
Fixed Bug 39531 : Problems with type conversion operators
TEST
Added QuickParseASTTests::testBug43644() & testBug43062().
Moved ASTFailedTests::testBug39531() to QuickParseASTTests.
This patch integrates the dependency calculator into
the indexer. As a result the underlying indexer file storage
format has changes. Lots of detail in the change logs of
exactly what changed...
partial fix for bug 43664 - Search cannot report matches outside of
workspace.
This enables non-ui reporting of matches outside the workspace. So
clients of search, like code assist will get external results.
We still need a resource to report a match to the search view so no
external matches in the UI.
core:
Modify Matchlocator to not try and create a link if we have no resource,
instead just use the path
core.tests:
added testNoResourceSearching() to OtherPatternTests
ui:
modify CSearchResultCollector to accept matches without resources, but not
attempt to report
them in the UI.
* src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
Core:
- Last part of solution to bug#42453: Expression result types not computed
Added the handling of POSTFIX_TYPENAME_IDENTIFIER
Completed bug#43221: POSTFIX_TYPENAME_IDENTIFIER not implemented
- Solution to bug#43644 : 6 triangle icons appearing in outline viewer when typing ...
Tests:
Enabled CompleteParseASTExpressionTest.testPostfixTypenameIdentifier()
UI:
Solution to bug#43646: Code Assist won't work if missing end bracket
Core:
Partial solution to bug#42453: Expression result types not computed
Added the handling of the NEW_TYPEID, CASTEXPRESSION, POSTFIX_DYNAMIC_CAST,
POSTFIX_REINTERPRET_CAST, POSTFIX_STATIC_CAST, and POSTFIX_CONST_CAST
Tests:
Added testNewTypeId(), testCastExpression(), testPostfixDynamicCast(),
testPostfixReinterpretCast(), testPostfixStaticCast(), and testPostfixConstCast()
to CompleteParseASTExpressionTest.
Partial fix for Bug 43221 : POSTFIX_TYPENAME_IDENTIFIER not implemented
TEST
Updated CompleteParseASTExpressionTest::testPostfixTypenameIdentifier() for Hoda.
Fixed Bug 43106 : Symbol Table support needed to resolve types
Fixed Bug 43375 : isExtern not returning true for extern declarations
TESTS
Added testBug43375() to CompleteParseASTTest.
Moved testConditionalExpressionWithReferencesB_Bug43106 from failed tests to passed tests.
Moved testPMDotStar() and testPMArrowStar to failed tests w/defect number 43579.
Fixed Bug 43084 : need to restructure TypeId to allow dynamic_cast<> type expression references.
Fixed Bug 39504 : sizeof-expressions are not handled properly
TESTS
Replaced ASTFailedTests::testBug39504A() with CompleteParseASTTest::testBug39504().
Moved testPostfixTypeIdExpression2() && testPostfixTypeIdTypeId2() to CompleteParseASTExpressionTest.
Restructured expression reference tests so that the order of arrival will not cause JUnit failures.
Core:
Solution to bug#43373: No reference to static member in definition (Major)
Solution to bug#43371: constructor incorrectly marked private (Normal)
Tests:
Added CompleteParseASTTest.testBug43373()
Added QuickParseASTTests.testBug43371()
UI:
Solution to bug#43143: Naming of Code Assist Menus/Tab are not consistent
changed both names to Content Assist. No tests provided.
Fixed Bug 42685, Bug 43474.
This patch:
- removes the old CTags Indexer
- removes the remaining Indexer block UI item under Project Properties
- enables the Indexer on all projects
Solution to bug#43162 : Code Assist not showing the right return value:
Saved a function return value string in the BasicSearchMatch object.
Created a new package org.eclipse.cdt.internal.core.parser.util and
added ASTUtil class with static methods to help convert an ASTFunction
return type from IASTAbstractDeclaration to String. Note that this was
previously implemented in the CModelBuilder. I just moved it to a common
library for others (BasicSearchMatch) to use.
UI:
Solutions to
bug#43162 : Code Assist not showing the right return value
Bug#43145 : foo function still showing in Code Assist even if "f" is deleted
Bug#42810 : Code Assist adding characters after pressing <enter>
Bug#42861 : Code Assist should be case insensitive.
Tests:
Solution to bug#43162 : Code Assist not showing the right return value.
Solution to Bug#42861 : Code Assist should be case insensitive.
Modified the CompletionProposalsTest to include upper and lower cases
and to include functions with different return values.
core :
- modified MatchLocator to not report local declarations when boolean is
set
- modified SearchEngine.search to take an additional parameter
"excludeLocalDeclarations"
core.tests:
- modified resources/cfiles/CompletionProposalsTestStart.cpp
- modified CompletionProposalsTest.testCompletionProposals
- updated calls to SearchEngine.search
ui:
- update calls to SearchEngine.search. CodeCompletion passes true for
excludeLocalDeclarations
- Since I forgot to do this last release, I am removing the
original managed build model schema and extension
points from the cdt core and ui projects.
Core :
- modified Symbol table interfaces to use List & Map instead of
LinkedList and HashMap
- fixed warnings in ParserSymbolTable
- fixed bug43106 - Symbol Table support needed to resolve types
- fixed bug43156 - require ability to add implicit inheritance
copy constructor
- fixed bug43159 - TypeInfo.equals() not working properly
- fixed bug43238 - Postfix_Subscript expressions confuse function
resolution
Tests:
- removed testConditionalExpression_Bug43159 from
FailedCompleteParseASTExpressionTest
and uncommented it (testConditionalExpression) in
CompleteParseASTExpressionTest
- uncommented the following tests in
CompleteParseASTExpressionTest :
testPostfixSubscript,
testPostfixSubscriptA,
testPostfixSubscriptB,
testPostfixSubscriptWithReferences
- updated ParserSymbolTableTests to use new addOperatorExpression
function
- added testDerivedReference, testAddCopyConstructor to
ParserSymbolTableTests
- fixed warning in ClassDeclarationPatternTests
Core:
In completeParseASTFactory.getExpressionResultType(): Added the support
for expression types: PM_DOTSTAR, PM_ARROWSTAR, CONDITIONALEXPRESSION
Tests:
Added more success test cases to CompleteParseASTExpressionTest
and more failure test cases to FailedCompleteParseASTExpressionTest
in testing PM_DOTSTAR, PM_ARROWSTAR, CONDITIONALEXPRESSION
core :
- add parameter references to index
- modify CharOperation.match to allow escaping wildcards
(bug43063)
- modify AbstractIndexer.bestPrefix to handle wildcard escaping in
name (bug43063)
- modify CSearchPattern to handle escaping wildcards (bug43063)
- modify enterFunctionBody and enterMethodBody to fix bug42979
- search for Parameter References
- added setThrowExceptionOnBadCharacterRead to IScanner to help
with wildcard bug43063
tests:
- modified resources/search/classDecl.cpp & include.h to include
some operators
- added testOperators_bug43063_bug42979() to
MethodDeclarationPatternTests
- added testParameterREferences to OtherPatternTests
Core:
In completeParseASTFactory.getExpressionResultType(): Added the support
for expression type PRIMARY_THIS.
In createMethod(): changed the scope of a method definition to point to
the parent class.
Tests:
Added CompleteParseASTExpressionTest.testPrimaryThis()