Open
Description
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
//> using dep io.github.jwharm.javagi:gtk:0.10.2
import org.gnome.gtk.{Unit => _, _}
object Main {
val w = Box.builder() // widget
.setOrientation(Orientation.VERTICAL)
.setHalign(Align.START)
.build()
val b1 = Box.builder() // box
.setHalign(Align.START)
.build()
val b2 = Box.builder() // box
.setOrientation(Orientation.VERTICAL)
.setHomogeneous(true)
.setHalign(Align.START)
.build()
val b3 = Box.builder() // box
.setHalign(Align.START)
.setHomogeneous(true)
.build()
val error1 = Box.builder() // error
.setOrientation(Orientation.VERTICAL)
.setHalign(Align.START)
.setHomogeneous(true)
.build()
val error2 = Box.builder() // error
.setHalign(Align.START)
.setOrientation(Orientation.VERTICAL)
.build()
}
Output
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
.
I believe this may be related to #16779.