Refactor LambdaForm constructors #7
Closed
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.
Refactor LambdaForm constructors into static factories.
There's only 1 constructor, which simply initializes all fields. Multiple factory methods are built on top of this, which add various argument validation/pre-processing and post processing of the constructed lambda forms.
Easier to see which LF creation goes through which checks due to names of factory, or if all checks are bypassed by calling the constructor.
Crucially, new factories can easily be added that bypass all the checks in the existing factories and just call the root constructor if they so wish to.
Additionally: replaced some default values literals with named constants so it's easy to see that it's just the default value for that arg at the call site.