Fixes #2085 path equality overrides #2089
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.
Fixes #2085
There were a couple of things causing this:
1 - While GlobalPath.Equals() has the right logic in it to test equality, PathValue.Equals(), in the PathValue class which is a wrapper around GlobalPath, wasn't using it.
2 - Even with Equals() properly defined, it still wasn't getting invoked because kOS only uses the
==
operator for equality. (i.e. the kerboscript definition of==
for comparing two Structures always has to match the C# definition under the hood for it.) This is because of howCalculatorStructure.Equal()
invokes the methodop_Equality
(via reflection) to do the test.The code changes here implement those operators for Path.
Here is a more complete version of the tests mentioned in the orginal issue #2085 . When running it, just check to make sure the expected value printed matches the actual result after the colon: