Reduce constant pool usage, this make Magnolia able to derive instance for sealed trait that has a lot of subtypes #486
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.
Even after #485 has been merged, I found that there is a limit to the number of subtypes when deriving instances with the
split
. By splitting subtypes array initialization to multiple functions, we are able to avoidmethod too large
error, but we aren't able to avoidclass too large
error because ofconstant pool
limit. When we initializeSubtype
, we pass a lot of values, so we consumeconstant pool
a lot which has 65534 entries.When I tested like below, the limitation of the number of subtypes is about 1550 with current implementation.
With this PR, we can derive instance for type has about 3600 subtypes and it seems there is no compilation speed degradation.