I am in the process of documenting the build model and as I go along, a
number of things will have to be cleaned up in the actual model itself.
This patch is purely a bookeeping change to make it easier for me to
maintain the build model in the face of these changes as we go forward.
Where I used to access XML elements using hard-coded strings, I have moved
the string into the appropriate interface class. If the name of the
attribute changes in the future, I only have to update it one place.
I have also begun the process of renaming certain attributes of the schema
to make them better reflect what they are doing. My hope is that if they
have intuitive names, toolchain implementers will have less difficulty
understanding their intent. In any case, I have changed four attribute
names; optionRef -> optionReference, toolRef -> toolReference, optionValue
-> listOptionValue, and optionEnum -> enumeratedOptionValue.
Unfortunately, these changes will invalidate the dot-cdtbuild files for
any managed build projects in your workspace. If you can't bear to create
a new project, move the files over, and set-up the compiler options again,
you can always hand-edit the changes in the file yourself. Just remember
to restart CDT after you do so.
- The core patch modifies the CModelBuilder to recognize pointers to functions.
- The tests patch changes the CModelElementsTests and puts the pointer to function test back in its original place (as a variable).
- The ui patch modifies the NewClassWizard to use search in finding a base class ( the new indexer must be on for it to work ).
Updated AST to better represent pointers to functions/methods.
Implemented typedef declaration/x-ref infrastructure.
TESTS
Updated QuickParseASTTests for pointer to function updates.
Updated CompleteParseASTTests for typedef work.
This patch is a refactoring of the C++ search result collecting.
There are 2 new classes:
- BasicSearchMatch implements IMatch
- BasicSearchResultCollector implements ICSearchResultCollector
IMatch itself has been modified to reflect a minimum set of information
that will be returned by the search.
The old CSearchResultCollector now extends BasicSearchResultCollector and
the old Match is now gone.
The CSearchResultLabelProvider has been moved from
org.eclipse.cdt.internal.ui.search to org.eclipse.cdt.ui, and it has
been modified to reflect changes to IMatch.
The result of this is that anyone wishing to take advantage of the search
engine (ie ClassWizard ) can now do it without implementing their own
ICSearchResultCollector and IMatch objects.
In order to meet certain internal guidelines and to test the makefile
generator, the build model replied to some answers with hard-coded
information. This patch moves the information into the build model. Tests
have been updated to reflect these changes, and the patch has been
smoke-tested on Unix.
core:
- fixed a couple of bugs to do with searching for globally qualified
patterns
- fixed a bug to do with the '?' wildcard
- fixed a bug to do with searching for functions/methods using patterns
specifying parameters
tests:
- new search tests:
ClassDeclarationPatternTests.testClassReferenceInFieldType
ClassDeclarationPatternTests.testClassReferences
ClassDeclarationPatternTests.testEnumerationReferenceVisibleByInheritance
ClassDeclarationPatternTests.testGloballyQualifiedItem
ClassDeclarationPatternTests.testTypeReferenceVisibleByUsingDirective
FunctionMethodPatternTests.testMethodDeclaration
FunctionMethodPatternTests.testMethodDeclarationWithParams
OtherPatternTests.testFieldDeclaration
OtherPatternTests.testNamespaceDeclaration
OtherPatternTests.testNamespaceReferenceInClassBaseClause
OtherPatternTests.testNamespaceReferenceInUsingDirective
OtherPatternTests.testVariableDeclaration
This patch creates a new failing test class : FullParseFailedTests. This
is for writing failed tests on the parser doing COMPLETE_PARSE.
The first failed test is for bug 40842 "Parser: NPE while parsing class
declaration in full parse mode"
- I added the ability to build when there are inter-project dependencies
(first iteration; I would like to try another way). There is also some
changes to how libraries are handled. Change logs describe the changes and
the AllBuildTests has been updated to reflect these changes.
Added COMPLETE_PARSE support for Method and Field declarations and cross-references.
Fixed some small ParserSymbolTable bugs.
Added support for linkage specification under COMPLETE_PARSE.
TESTS
Updated CompleteParseASTTests for Method/Field updates.
Fixed TortureTest's parser mode switch (was always QuickParsing).
This core patch cleans up the CModelBuilder. It also solves a bug and all tests in IStructureTests now pass successfully.
In the core.tests patch, the test for templates of variables is removed from ITemplateTests because it is moved to the failed tests.
This patch is for the search. No new things can be searched yet, but this
brings more things closer to being able to be searched.
- Implemented decodeIndexEntry & matchIndexEntry for all patterns
- changed MatchLocator to use a COMPLETE_PARSE.
- added TYPE_ALL, FUNCTION_ALL, METHOD_ALL, NAMESPACE_ALL,
FIELD_ALL constants to IIndexConstants
- modified AbstractIndexer prefix functions to properly handle
searching for all occurences