-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Fix problems with higher-kinded implicits #716
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from 2 commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
eac33f0
Make compareHK work if other side is already a lambda.
odersky ec2d7d6
Refine lookupRefined for Wildcard prefixes
odersky 87cfcf9
Revert "Refine lookupRefined for Wildcard prefixes"
odersky 30aca0f
Another solution to the problem of discarded types in wildApprox
odersky File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import scala.util.Random | ||
object Test { | ||
def test = { | ||
val rand = new Random | ||
rand.shuffle(List(1,2))// infers implicit argument list (List.canBuildFrom[Int]) | ||
} | ||
} |
File renamed without changes.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment on https://github.com/dotty-staging/dotty/blob/fix/shuffle/src/dotty/tools/dotc/core/Types.scala#L1423-L1424 is now wrong since the wildcard is now bounded, not unbounded. it'd be nice to update it and maybe also document the handling of wildcard in
lookupRefined
itself.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, does this mean that we consider
(_ >: Foo <: Bar)#T
to be equivalent to_ >: Foo#T <: Bar#T
? If so, isn't this wrong in general? For example, ifT
is contravariant we may haveFoo <: Bar
butFoo#T >: Bar#T
so the bounds_ >: Foo#T <: Bar#T
would not be satisfiable.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that having a few test cases would be helpful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@smarter Good point about the change in lookupRefined. I have backed out of it, and replaced it with a different solution.
Test cases: We have Random.shuffle, I think that's already a good one. If you have more, please add them.