path.Epic Reverse method error handling. #4229
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.
Hello 👋 , currently one of the guaranteed post-conditions of the Path interface Reverse method is that "if the error return value is
nil
, then the returned Path is well-formed". This is a general pattern in Go when returning an error value, but especially in the context of the VerifiedSCION project.In the case of the Epic path's Reverse function, if the type assertion fails, the returned
err
value would still benil
from the assignment on line 101, seen here.I would say that this is invalid and propose that a new error should be returned. I simply threw in an error message there, however, I am unconvinced that it is the correct message. Better suggestions are welcome.
This change is