Failing test: constructors with input array{key: T}
and array{key: list<T>}
considered colliding
#488
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 this test, Valinor considers two disjoint input types as colliding.
Similar to #487 ( ffe0f0f ), this scenario was detected while trying to map multiple constructors for XML structures that may present different data depending on singular/plural entries found:
In #487, we attempted to map a single constructor using
array{foo: T|list<T>}
, while in this patch, we found the issue because we attempted to attack the problem by declaring separate constructors that would work onarray{foo: T}
andarray{foo: list<T>}
disjointly, but failed to do so due to aggressive collision detection logic.Initially discovered by @Tigerman55