Handle lots of fields #284
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.
The test case
LotsOfFields
only works because all of the fields have the same value. The actual code is allocating the first 32 (DEFAULT_STRUCT_FIELD_COUNT
) fields to the correct position but then using the JSON order to define any other fields. If we rearrange the fields in the JSON and use unique values then the result is wrong (see the new test).I propose to use the
fieldcount
function instead of a constant to determine the number of fields. The documentation states that this function may throw an error but I'm not sure that the rest of JSON3 can handle such abstract cases, and there are no test cases currently defined that are failing.