You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3.4.3, and all previous versions of Scala 3 that I've tested. Crashes on 3.5.0, fixed by #21522, but it has the same (wrong) types as 3.4.3 after that fix.
Compiling project (Scala 3.4.3, JVM (22))
[error] ./Main.scala:23:16
[error] value setHomogeneous is not a member of org.gnome.gtk.Box#Builder[? <: org.gnome.gtk.Box#Builder[?]]#B#B²
[error]
[error] where: B is a type in trait Builder² with bounds <: io.github.jwharm.javagi.gobject.Builder³[B]
[error] B² is a type in class Builder⁴ with bounds <: org.gnome.gtk.Widget#Builder⁴[B²]
[error] ./Main.scala:28:16
[error] value build is not a member of org.gnome.gtk.Box#Builder[? <: org.gnome.gtk.Box#Builder[?]]#B#B²
[error]
[error] where: B is a type in class Builder² with bounds <: org.gnome.gtk.Widget#Builder²[B]
[error] B² is a type in trait Builder³ with bounds <: io.github.jwharm.javagi.gobject.Builder⁴[B²]
Error compiling project (Scala 3.4.3, JVM (22))
Compilation failed
Expectation
The code should compile, as it does when using Scala 2.13. Also, the type of the first assignment should be a Box (as on Scala 2, and Java), not a Widget.
Thanks for testing that, @som-snytt! Too bad it didn't help.
I'm now even more convinced that this is related, and perhaps a duplicate of, #16779. It seems we end up with those path-dependent types in Scala 3 when using Java interfaces that have wildcard types and "interesting" inheritance, but not in Scala 2.
The "use Java rules to look up types" was forward-ported, and I noticed it wasn't quite a clean port, so it wouldn't surprise me that additional subtlety is at play. (That's as far as I got with that angle.)
Compiler version
3.4.3, and all previous versions of Scala 3 that I've tested. Crashes on 3.5.0, fixed by #21522, but it has the same (wrong) types as 3.4.3 after that fix.
Minimized code
Output
Expectation
The code should compile, as it does when using Scala 2.13. Also, the type of the first assignment should be a
Box
(as on Scala 2, and Java), not aWidget
.I believe this may be related to #16779.
The text was updated successfully, but these errors were encountered: