Improved error handling for Indexer
Improved error handling for MatchLocator
Bounds checking for mappings in IncudeEntry
Improved error handling for Merge operations
Source file name fitering for recreating an already existing index
This patch fixes the way the symbol table handles const & volatile.
It also fixes the following bugs:
47628 - signed char is parsed as char
47636 - char * and char[] are treated as different types
45697 - Parser/Symbol Table: Mismatched declarations & definition
Removed IASTCompletionKind.SCOPED_REFERENCE as it was obsolete.
Did preliminary work to support content assist within qualified names.
org.eclipse.cdt.ui
Updated Content Assist feature to not use IASTCompletionKind.SCOPED_REFERENCE
Restructured Parser implementation to allow for better support of Selection Search.
Restructured Parser implementation to allow for separation between parsing expressions (Scanner) and complete C/C++ source.
org.eclipse.cdt.core.tests
Updated tests to accommodate for new Parser class hierarchy and factories.
This patch represents a couple of months work (off and on since the
summer) on Parser Symbol Table support for templates.
This is symbol table support only, not parser support (that still needs to
be done).
What does work:
- declarations, definitions & instantiations for class templates, function
templates, & template templates
- declarations, definitions & instantiations of class template partial
specializations
- template ordering & argument deduction (allows implicit template
function instatiation)
What doesn't (yet) work:
- Explicit specializations
- assorted smaller specific cases & bugs & things I havn't thought of yet
This patch adds a layer of separation between the indexer and the parser by running the parser in its own thread. This allows the indexer to finish all jobs regardless of the individual parser outcomes. Also fixed a potential EOF bug while reading stored indexes.
Refactored Parser.java to allow inline small functions and tightened the signatures for statement().
Refactored Scanner.java to allow for data to be encapsulated to allow for IScannerExtension to act upon it.
Partially fixed Bug 47628 - signed char is parsed as char (affects the outline view)
org.eclipse.cdt.core.tests
Added testBug47682() to QuickParseASTTests.java.
Core:
- fix class cast exception in the symbol table while traversing the
inheritance of a class.
- filter the results of the prefix lookup for content assist so that those
symbol without attached AST nodes aren removed so that the iterator does
not later return a null.
Tests:
- added CompletionParseTests.testBug51260
Added support for inline method x-references.
Fixed Bug 44340 - Inline functions fail to resolve references
Fixed Bug 51243 - Content Assist in an empty document causes a NPE
org.eclipse.cdt.core.tests
Moved testErrorHandling_1() from failed tests to CompleteParseASTTest.
Moved testBug44340() from failed tests to CompleteParseASTTest.
PR 51221
Reformat Patch from Bogdan base on Thomas Fletcher original patch
In a nutshell, it moves the search operation into a runnable which
can be passed to a progress dialog.
PR 51221
Reformat Patch from Bogdan base on Thomas Fletcher original patch
In a nutshell, it moves the search operation into a runnable which
can be passed to a progress dialog.
* src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java
Added CompletionKind.UNREACHABLE_CODE to IASTCompletionNode.
Updated Scanner to handle unreachable code scenarios in content assist.
Added Directives class to centralize preprocessor directive strings.
Added keyword completion for preprocessor lines that start with #.
Partial fix for Bug 47752 - Outline does not recognize functions with full body try/catch blocks
org.eclipse.cdt.core.tests
Added QuickParseASTTest::testBug47752.
Fixed Bug 50487 - Wrong completion kind and prefix after "#ifdef"
org.eclipse.cdt.ui.tests
Updated CompletionFailedTest_MacroRef_NoPrefix_Bug50487, renamed it to CompletionTest_MacroRef_NoPrefix and moved to passed test package.
Updated CompletionFailedTest_MacroRef_Prefix_Bug50487, renamed it to Y and moved to passed test package.