Ich habe ein Modul für die BaseXJava interface, die ich in Clojure schreibe. Die Schnittstelle stellt eine Anzahl von Anmerkungen zur Verfügung, die verwendet werden können, um zu bestimmen, wie Methoden aufgerufen und optimiert werden; aber ich habe Probleme, diese eigentlich immer zu der generierten Klasse anhängen:Clojure: Annotationen an AOT-kompilierte Methoden anhängen
(ns net.dyfis.svnkit_wrapper.SvnWrapper
(:import (org.basex.query QueryModule
QueryModule$Requires
QueryModule$Permission
QueryModule$Deterministic))
(:gen-class
:main false
:extends org.basex.query.QueryModule
:methods [
^{:static true}
[^{QueryModule$Requires QueryModule$Permission/NONE,
Deprecated {}}
cat [java.lang.String] java.lang.String]
^{:static true}
[^{QueryModule$Deterministic {},
QueryModule$Requires QueryModule$Permission/NONE}
catRev [java.lang.String int] java.lang.String]]))
jedoch nur die Veraltete Anmerkung wird angebracht - die QueryModule$Requires
und QueryModule$Deterministic
Anmerkungen stillschweigend verworfen werden:
>>> cat
public static java.lang.String net.dyfis.svnkit_wrapper.SvnWrapper.cat(java.lang.String)
>>> cat.getAnnotations()
array(java.lang.annotation.Annotation,[@java.lang.Deprecated()])
Dies geschieht mit Clojure 1.4.0-beta6, während Unterstützung für Annotationen in AOT-kompilierten Methoden von Clojure 1.2 erwartet wird. Dies ist vermutlich ein Nutzungsfehler - aber was soll ich anders machen?