Fixed Bug 42985 : Search: Qualified function call is treated as a declaration
Fixed Bug 40419 : parser fails on heavily templated expressions
TESTS
Created QuickParseASTTests::testBug42985().
Moved LokiFailures::testBug40419() to QuickParseASTTests.
Deleted LokiFailures as it was empty.
This is my previous patch updated with a test and resubmitted.
It fixes some NPE's in function resolution if the parameter information is
bad.
It also tries to clarify conversion sequence ranking with comments and
constants.
Core:
For bug42815
- Modified ICSearchResultCollector.createMatch to not take a parent
parameter
- modified BasicSearchResultCollector to create the parent string from the
fully qualified name of the node
- modified MatchLocator to keep track of most recent declaration for
reporting purposes
- modified MatchLocator.report to use the most recent declaration
Core.Tests:
- Created search/SearchTestSuite
- Added SearchTestSuite to AutomatedIntegrationSuite and removed the
individual search tests
- Added testReferencesInFunction to ClassDeclarationPatternTests
- Modified resources/search/classDecl.cpp
- Modified testNamespaceReferenceInClassBaseClause, testMacroPattern,
testEnumerators,
and testEnumeratorReferences in OtherPatternTests to test the Match
result strings
UI:
- bug42837 - fixed populating search dialog on function declarations
- bug42829 - prepopulated search dialog to any element declarations
- bug42815 - group together search results with same label
- modified CSearchResultLabelProvider to not display the "-" in the search
label
while sorting by name if there is no parent.
UI
- This patch changes the search context menu in the CEditor, CContentPage and CView:
Search > C/C++ Search...
File Search > Workspace
WorkingSets
- C/C++ Search pops up the search dialog with the chosen element filled out.
- File Search does a text based file search on the Workspace or a chosen WorkingSet
Core
- Added some error checking to the dependency generator.
- Removed any reference to jdt.ineternal package for property files
in TextManipulationMessages and CUIMessages
- Added a CUIMessages.properties file to org.eclipse.cdt.internal.ui
Hi All,
Details are in the change log, but this patch contains work that partially
implements incremental build. There are 2 major use cases not implemented:
full rebuild on project settings change and properly handling header file
changes. Both problems require build model work, so I will deliver that
functionality in another patch. There are also fixes for bugs 41412 and
42735.
As always, I have run the JUnit tests on Solaris (Motif) and Linux (Gtk).
Core:
- Solved the double reference problem
- solution to bugs #42822, #42823, & #42822B
Tests:
Moved three failed tests (bugs #42822, #42823, & #42822B)
from FailedCompleteParseASTExpressionTest to CompleteParseASTExpressionTest
CORE
-Added more IASTExpression.Kind handling to CompleteParseASTFactory.getExpressionResultType()
TESTS
-Seperated the Expression result type test in a new file : completeParseASTExpressionTests.
-Added more test cases for simple types.
-Added FailedCompleteParseASTExpressionTest for failed reference tests.
Updated ScannerException to be more precise and include more information.
Updated Parser to be more careful of how it handles particular Scanner errors in COMPLETE_PARSE mode.
TESTS
Updated ScannerTestCase to keep up to date wrt ScannerException updates.
- Hooked up the Indexer to the dependency tree. Everytime a header file
gets modified, the including source files get reindexed.
- Automated dependency calcuations - each time a file gets modified, its
tree gets updated.
- Added error logging via the PDE Error Log (Views->PDE Runtime->Error
Log) - the indexer reports unsuccesful index attempts and the preprocessor
reports unsuccesful inclusion resolution attempts
UI
- Changed the names on the search popup mens
Core :
Index
Enumerator references
- Added createEnumeratorFullyQualifiedName in AbstractIndexer
- Added addEnumeratorReference in AbstractIndexer
- implemented acceptEnumeratorReference in SourceIndexerRequestor
Search
pattern matching on function parameters:
- modified scanForParameters in CSearchPattern
- added getParamString in CSearchPattern
- modified matchLevel in MethodDeclarationPattern
Enumeration references
- modified acceptEnumeratorReference in MatchLocator
core.tests:
Modified resources/search/classDecl.cpp
- to include more function declarations to test parameter
matching
- to include an enumerator reference to test enumerators
Added testMethodDeclarationParameterMatching to
FunctionMethodPatternTests.java
Added testEnumeratorReferences to OtherPatternTests
Made scoping support more robust in CompleteParse mode.
Refactored ISourceElementRequestor (enter|exit)CodeBlock() to take IASTCodeScope rather than IASTScope.
Removed the now obsolete DOM.
Added enumerator references to ISourceElementRequestor.
TESTS
Added CompleteParseASTTest::testThrowStatement(), testScoping(), testEnumeratorReferences().
Removed LineNumberTest source as it is obsolete.
Core :
- Create ParserLanguage.java
- Modified ParserFactory functions to take ParserLanguage as parameter
- Modifier Parser, Scanner & ParserSymbolTable to use new ParserLanguage
class
- Update call to ParserFactory in Indexer, Search, CModelBuilder &
Dependency Tree
Core.tests:
- Updated calls to ParserFactory to specify which language to use
UI:
-CStructorCreator uses the parser, modified call to ParserFactory to
specify CPP language.
(this is the same behaviour as before)
Core :
Added references to variables with pointers in solution of bug#42453:Expression result types not computed
Tests:
Added tests to CompleteParseASTTest to test the expression result type for function calls that reference variables with pointers (bug#42453).
Continue to add support for parsing within function bodies.
Add workaround for 1.2 for inline function declaration-before-use chicken-and-egg.
TESTS
Added CompleteParseASTTest::testSimpleIfStatement(), testSimpleWhileStatement().
testSimpleSwitchStatement(), testSimpleDoStatement().
Core:
- fix patterns & indexing for Enumerators
Core.Tests:
- Added testEnumerators to OtherPatternTests.java
- Modified resources/search/classDecl.cpp to include some enumerators
UI:
- enable Selected Resources scope
- populate dialog base on selection when opened from outline view
- fix small bug that found namespaces when searching for enumerations
- tweak sorting by path to consider line number second
- Added references to variables in solution of bug#42453:Expression result types not computed
- Solution to bug#42560: Class Cast Exception during Method definition
First pass of parsing function bodies with X-Reference information.
Updated IASTFactory/ISourceElementRequestor to include IASTCodeScope
constructs, clients should keep this in mind and update their implementations.
TESTS
Updated ASTFailedTests::testBug39702() to fail more accurately.
Added testSimpleFunctionBody(), testSimpleForLoop() to CompleteParseASTTest.java.
Core:
- Changed the ASTExpression of the complete package to store the
whole ITokenDuple for the typeId instead of just the string.
- Changed the ASTExpression in both quick and complete packages and
deleted the "id" parameter.
- Added partial solution to bug #42453: Exception result types not computed.
Now they are computed for simple types only.
Tests:
Call to ASTExpression getTypeId() changed to getTypeIdString().
UI:
Solution to bug#42414 :Extraneous semi-colons in generated class methods
- set default C++ search sort order to be by path
- modified search dialog to use checkboxes instead of radio buttons
SearchFor buttons are now organized like this:
Class / Struct Function Variable
Union Method Field
Enumeration Namespace Any Element
When multiple buttons are selected, they are combined using the Or
Pattern.
fix bug in PST that causes parse failure on > 2 constructors for a given
class
Modified ParserSymbolTableTest.testConstructors to test > 2 constructors