also modify IASTFactory.createField & createVariable to take ITokenDuple for name
Better treatement for definitions of static members of template classes.
Removed the Strings associated with constant value tokens and keywords -- it looks cleaner, and reduces the number of objects created (only by 30 to 40 K) (about 2% quicker)
Buffered the File I/O associated with reading inclusions.
Restructured the scanner into a large case statement with a few helper functions -- this is the start of removing the strings (or providing a preallocated buffer for string manipulation) (about 2% quicker)
Refactored parser for further content assist work.
org.eclipse.cdt.ui.tests
Updated failed test to fail in new way as Content Assist feature work continues on ...
Added some trace statements to CompleteParseASTFactory.
Cleaned up usage of Enum.getValue() wrt encapsulation of enumerator value.
Refactored CompleteParseASTFactory for correctness and abstraction.
Added preliminary IProblem support to CompleteParseASTFactory.
Added (commented out unfortunately) assertions into CompleteParseASTFactory.
Updated IASTUsingDeclaration to return an Iterator for declarations mapped rather than just a single declaration.
org.eclipse.cdt.core.tests
Updated tests to deal with IASTUsingDeclaration interface changes.
org.eclipse.cdt.ui
Cleaned up usage of Enum.getValue() wrt encapsulation of enumerator value.
Updated Scanner to allow for invalid identifier names despite C++'s best efforts at maintaining its honour.
org.eclipse.cdt.core.tests
Added ScannerTestCase::testGerman().
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
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.