Fix potential crash when deserializing Dictionary<T, U> where T is an enum #58
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.
In the case where a TomlField is being applied to a Dictionary with enum keys, there is a possibility for an exception to be thrown that can't be handled well if an invalid enum key exists in the TOML data.
Reproduction:
(with
IgnoreInvalidEnumValues
set to true)a. Parse a TOML string with multiple invalid keys
b. Parse a TOML string with one invalid key, and at least one other valid key at the default value
Result:
a. An key is added at the default (0) value with the invalid enum's value, which is hard to detect
b. An exception is thrown when a valid key at the default (0) value also exists
c. An exception is thrown when multiple invalid keys are found
Expected:
Invalid keys should not be added to the dictionary, multiple keys should never happen
Changes in this PR: