Fix introspection of C array data members #2666
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request is fixes for three different problems involving C array data members, plus a unit test that would have found one of the problems. These problems all caused failures in conditions code in many relval tests in the ROOT6 branch.
1)MemberWithDict::typeof(), when the member is a C array, stripped off the array information and just returned the underlying type. The array information should not have been stripped.
A framework unit test is added here that would have found the above problem.
TypeID::className() put a space between the base type name and the opening square bracket. This is incompatible with the naming used by conditions.
In the ROOT6 specific code in CondCore/ORA, the C array information was not stripped off in several places where it should have been. This pull request strips it off when needed,
Note: Items 1, 2, and 3 are not ROOT6 specific. The fixes and tests there will be back ported to 7_1_X.
Item 1 may be backported further if offline management wants it.
Please merge this in the ROOT6 branch promptly unless there are issues.