Refactoring: Move to default optional parameters when they were reimplemented by hand #5806
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.
Replaces patterns like this:
With this:
All of the default values in this PR are literals, except for one case, which evaluates a function (whether it is or is not evaluated when a default value is provided is unspecified: https://ocaml.org/manual/5.2/expr.html#sss:expr-function-definition):
It is equivalent to the existing code, however, since
Option.value
also evaluates the~default
arm.=====
I didn't add a quality gate as it's quite hard to definitively grep for this case and it needs to be evaluated on an individual basis. I investigated adding semantic grepping, but this seems to be far away.
For posterity, here's the pattern I used to find these cases:
rg -U --pcre2 '\?(\w+)(.*\n){1,10}\s*let\s*\1 =\s*\n?(match|Option)'
Additionally, this PR removes
Option.fold ~some:Fun.id
that I found while working on this PR, replacing them withOption.value
. These are the only occurrences of this pattern in the codebase.=====
This change passed the BST+BVT test suites (Run 200710)