Fixed Bug 44838 : exception when resolving parameter references in a constructor
Fixed Bug 46165 : fields referenced in constructor chains are not called back upon
Fixed Bug 45551 : Macro replacement in #include <file.h> directives
TESTS
Added CompleteParseASTTest::testBug44838().
Added CompleteParseASTTest::testBug46165().
Added ScannerTestCase::testBug45551().
Cleaned up the ParserFactory interface to check for validity of input arguments.
Moved NullSourceElementRequestor and ScannerInfo to public interface as requested.
Restructured code so that no Eclipse/CDT source outside the parser source directory is used.
Updated parser clients to use new ParserFactory (stand-alone parser work item).
UI & TESTS
Updated parser clients to use new ParserFactory (stand-alone parser work item).
Removed warnings from parser source tree.
Removed preliminary task tags support to clean up parser interfaces and implementation.
Added preliminary IProblem support to
UI
Updated parser clients to use new IProblem strategy.
TESTS
Updated parser clients to use new IProblem strategy.
core:
Fixed Bug 44925 : Search: Elaborated type specifier
Partially Fixed Bug 44510 : C/C++ Search gives wrong results
ui:
Fixed Bug 44337 : Disabling of "definition" not making sense in Search
dialog
Fixed Bug 44947 : Navigate from Outline: Enumeration type not
pre-populated
Fixed Bug 44948 : Navigate via Open Declarations: typedef decl not found
Fixed Bug 39542 : Parser fails on 'struct' parameter types
Fixed Bug 39549 : Designated initializers are not supported (ANSI C99)
Fixed Bug 39551 : Complex and imaginary numbers are not supported (ANSI C99)
TESTS
Moved testBug39542() from ASTFailedTests to QuickParseASTTests.
Moved testBug39549() from ASTFailedTests to QuickParseASTTests.
Added testCDesignatedInitializers() to CompleteParseASTTests.
Moved testBug39551A() from ASTFailedTests to QuickParseASTTests.
Moved testBug39551B() from ASTFailedTests to QuickParseASTTests.
Added testCBool() to QuickParseASTTests.
Added testBug39551A(), testBug39551B() and testCBool to CompleteParseTests.
Fixed Bug 40007 : Parser reports success when it fails
Fixed Bug 44305 : Scanner/preprocessor fails on conditionals using hexidecimal
Fixed Bug 41935 : parser provides wrong name on namespace aliases
Fixed Bug 39525 : Parser fails on expressions that take address of overloaded operators
Fixed Bug 45287 : Scanner does not accept character sequence literals
Fixed Bug 36550 : Error recovery with unterminated string is weak
Fixed Bug 41063 : Remove unused K&R C support from ANSI Parser
Fixed Bug 39528 : Function try-blocks are not supported by the parser (ANSI C++)
Fixed Bug 39538 : Parser fails on explicit instantiation of templated operators
Fixed Bug 39536 : Parser fails on templated constructors/conversion operators
Refactored Scanner to make it easier to debug.
TESTS
Moved testBug40007() from ASTFailedTests to QuickParseASTTests.
Added QuickParseASTTests::testBug40759().
Added QuickParseASTTests::testBug44633().
Added ScannerTestCase::testBug44305().
Added QuickParseASTTests::testBug41935().
Moved testBug39525() from ASTFailedTests to QuickParseASTTests.
Added ScannerTestCase::testBug45287().
Moved testBug39528() from ASTFailedTests to QuickParseASTTests.
Moved testBug39538() from ASTFailedTests to QuickParseASTTests.
Added QuickParseASTTests::testBug39536().
Moved testBug39536A() from ASTFailedTests to QuickParseASTTests.
Moved testBug39536B() from ASTFailedTests to QuickParseASTTests.
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
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:
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:
- 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.
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.
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 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()
Fixed Bug 39556 : 'restrict' qualifier is not supported (ANSI C99)
Fixed Bug 43126 : ISourceElementRequestor.acceptParameterReference accesses internal class
Fixed Bug 43062 : Outline is confused on operator methods containing spaces
Cleaned up some warnings in the parser.
TESTS
Moved ASTFailedTests::testBug39556() to QuickParseASTTests.
Cleaned up some warnings in parser tests.
Core:
In completeParseASTFactory.getExpressionResultType()
- Added the handling of some more expression types.
See CompleteParseASTExpressionTest for details.
Tests:
- Added lots of test cases to CompleteParseASTExpressionTest
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:
- 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
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().