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.
Opening a PR so that I have a single place to put my conclusions.
The problem with
make_static_call
is that it currently spawns a bunch of monomorphs that are never unified with anything. We have a mechanism now to unify typed call arguments and we should use it here.However, we're running into problems with some tests related to
@:multiType
, in particular situations where we haveMap<NotString, X>
withNotString
NOT being assignable toString
but still supposed to end up asStringMap
. This means a proper unification fails.If we want to keep this behavior (related issues: #4777, #9712, #10098) we have to add a special case for it "somewhere". I'm having a hard time understanding why it should be justifiable to have a type that is not assignable to another type except when used as a key to
Map
. However, multiple people whose opinions I usually value highly are somehow totally fine with that idea, so maybe I just have to find the right mindset...