FunN-Klassen werden nicht erstellt #360

Open
opened 2025-05-21 09:19:12 +00:00 by jschmidt · 0 comments
Collaborator

Aktuell werden beim normalen cli Aufruf des Compilers keine FunN Classfiles erstellt.
In den Tests wird diese Funktionalität manuell zusätzlich aufgerufen
Dadurch sind Programme mit Funktionstypen aktuell nur in den Tests lauffähig.

Beispiel

Func.jav

import java.lang.Integer;
import java.lang.Boolean;

class Func {
    public main() {
      var func = x -> x > 2;
   }
}

Main.java

class Main{
  public static void main(String[] args) {
    new Func().main();
  }
}

$java Main
Exception in thread "main" java.lang.NoClassDefFoundError: Fun1$$Ljava$lang$Integer$$Ljava$lang$Boolean$$
at Func.main(Unknown Source)
at Main.main(Main.java:3)
Caused by: java.lang.ClassNotFoundException: Fun1$$Ljava$lang$Integer$$Ljava$lang$Boolean$$
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:528)
... 2 more

Aktuell werden beim normalen cli Aufruf des Compilers keine FunN Classfiles erstellt. In den Tests wird diese Funktionalität manuell zusätzlich aufgerufen Dadurch sind Programme mit Funktionstypen aktuell nur in den Tests lauffähig. Beispiel > Func.jav ```java import java.lang.Integer; import java.lang.Boolean; class Func { public main() { var func = x -> x > 2; } } ``` > Main.java ```java class Main{ public static void main(String[] args) { new Func().main(); } } ``` > $java Main Exception in thread "main" java.lang.NoClassDefFoundError: Fun1$$Ljava$lang$Integer$_$Ljava$lang$Boolean$_$ at Func.main(Unknown Source) at Main.main(Main.java:3) Caused by: java.lang.ClassNotFoundException: Fun1$$Ljava$lang$Integer$_$Ljava$lang$Boolean$_$ at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:528) ... 2 more
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: JavaTX/JavaCompilerCore#360
No description provided.