Skip to content

Conversation

odersky
Copy link
Contributor

@odersky odersky commented Jul 24, 2024

Was future before.

We can roll this out now, since we already made it an error in 3.5 to pass a normal argument to a using clause. It would be good to roll this out now since otherwise context bounds would represent an exception to the implicit priority inversion in #19300.

See discussion at the end of #19300 for details.

@odersky odersky requested a review from WojciechMazur July 24, 2024 09:50
@odersky
Copy link
Contributor Author

odersky commented Jul 24, 2024

This needs a change in scaladoc to recognize using clauses with evidence parameters as context bounds. Right now it seems the logic is that a context bound is recognized only if the evidence parameter is an implicit.

@Florian3k can you take this on? Alternatively, who else is working on scaladoc these days?

@WojciechMazur
Copy link
Contributor

Mikołaj is currently having ~2 weeks off to focus on his thesis, @Gedochao we might need to look for some else to handle the issue

@Gedochao
Copy link
Contributor

Alternatively, who else is working on scaladoc these days?

Nobody else AFAIK. So it's fair game for anyone, if Mikołaj isn't available.

@tgodzik
Copy link
Contributor

tgodzik commented Jul 24, 2024

Shouldn't this be a quick fix around https://github.com/scala/scala3/blob/main/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala#L633 ?

Last PR that touched it was #13172

We can either wait for him or try to fix it here (I think you have most context about the change and could probably change it quickest though)

@odersky odersky force-pushed the change-ctx-bounds-mapping branch from ba82d69 to b8f9c2c Compare July 24, 2024 17:05
odersky added 2 commits July 24, 2024 20:39
If we have a function like

```scala
def foo[X: CB](...)(implicit x: T)
```
always map context bounds to implicit parameters, irrespective of version.

Likewise, if we have a function
``scala
def foo[X: CB](...)(using x: T)
```
always map context bounds to "using" parameters, irrespective of version.
This avoids mixing implicit and using in one parameter list.
@KacperFKorban
Copy link
Member

It looks like similar changes as in scaladoc might be needed here and here for pc to work correctly

@odersky
Copy link
Contributor Author

odersky commented Jul 25, 2024

@KacperFKorban Thanks for the pointers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-notes Should be mentioned in the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants