Closed
Description
Compiler version
3.3.1
Minimized code
import scala.language.dynamics
import scala.scalajs.js
import scala.scalajs.js.annotation._
object Main {
@js.native
@JSGlobal("MyDynamic")
class MyDynamic extends js.Any with Dynamic {
@JSBracketAccess
def selectDynamic(name: String): js.Any = js.native
@JSBracketAccess
def updateDynamic(name: String)(value: js.Any): Unit = js.native
}
def main(args: Array[String]): Unit = {
val d = new MyDynamic
println(d.one)
println(d.two)
}
}
This is Scala.js - complete project available at https://github.com/OndrejSpanel/ScalaJsDynamic
Output
When using run
in sbt, I get:
[error] scala.Dynamic (of kind Interface) is not a valid interface implemented by Main$MyDynamic (of kind NativeJSClass)
[error] called from Main$MyDynamic
[error] called from Main$.main([java.lang.String)void
[error] called from static Main.main([java.lang.String)void
[error] called from core module module initializers
[error] involving instantiated classes:
[error] Main$
Expectation
The code should run. The same code works fine with Scala 2.13.12
Note
When posted as https://stackoverflow.com/q/77874549/16673, @sjrd advised to report it as a bug.