- Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
Description
Compiler version
- 3.7.1
- 3.nightly
Minimized code
#!/usr/bin/env scala //> using scala "3.7.1" // //> using scala 3.nightly also tried with nightly //> using repository "https://repo.papermc.io/repository/maven-public/" //> using dep "com.velocitypowered:velocity-api:3.4.0-SNAPSHOT" import com.velocitypowered.api.command.RawCommand import com.velocitypowered.api.command.RawCommand.Invocation class CrashCommand() extends RawCommand: override def execute(invocation: Invocation): Unit = () object Main: def main(args: Array[String]): Unit = val command = CrashCommand()
Not tried, but i think the java library can be minimized to:
public non-sealed interface RawCommand extends InvocableCommand {} public sealed interface InvocableCommand permits RawCommand {}
Output
When RUNNING this code the jvm throws an error
Downloading 2 dependencies Compiling project (Scala 3.7.1, JVM (21)) Compiled project (Scala 3.7.1, JVM (21)) Exception in thread "main" java.lang.IncompatibleClassChangeError: class Crash$_$CrashCommand cannot implement sealed interface com.velocitypowered.api.command.InvocableCommand at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) at Crash$_$Main$.main(Crash.sc:16) at Crash_sc$.main(Crash.sc:35) at Crash_sc.main(Crash.sc)
Expectation
no error is thrown