Fix boolean conversion for Rule0032 #677
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 is a partial fix for issue #523. It is only partial, because it prevents the exception, but the rule (still) can not detect problems with codeunits, that are only available as symbol/app and not as source code.
The reason for the previous exception:
singleInstanceProperty.Value
returns "1" if the codeunit hasSingleInstance = true
set and is referenced via app/symbol.The reason why it is not fully fixable:
The
codeunitTypeSymbol.GetMembers()
call does not return global variables for codeunits that are only available as symbol/app and not in "real" source code. We are only getting procedures and triggers. Here's an example:I tried to mitigate this problem by accessing internal methods (like the
GlobalVariables
property ofReferenceCodeunitTypeSymbol
) via reflection, but decided against it since I would have needed even more reflection to cast the return types correctly.Fixes #523