Verwenden Sie Scala-Makros, um Methoden zu generieren

Ich möchte in Scala 2.11+ Aliase von Methoden mithilfe von Anmerkungsmakros generieren. Ich bin mir nicht mal sicher, ob das überhaupt möglich ist. Wenn ja, wie?

Beispiel - In Anbetracht dessen möchte ich, dass die Anmerkungsmakros zu @ erweitert werde

class Socket {
  @alias(aliases = Seq("!", "ask", "read"))
  def load(n: Int): Seq[Byte] = {/* impl */}
}

Ich möchte, dass die oben genannten Synonymmethodenstubs wie folgt generiert werden:

class Socket {
  def load(n: Int): Seq[Byte] = // .... 
  def !(n: Int) = load(n)
  def ask(n: Int) = load(n)
  def read(n: Int) = load(n)
}

Das obige Beispiel ist natürlich ein scherzhaftes Beispiel, aber ich sehe, dass diese Technik nützlich ist, um automatisch synchronisierte / asynchrone Versionen von APIs oder DSLs mit vielen Synonymen zu generieren. Ist es möglich, diese generierten Methoden auch im Scaladoc verfügbar zu machen? Ist das mit Scala meta möglich?

Hinweis: Was ich frage, ist ganz anders als:https: //github.com/ktoso/scala-macro-method-alia

Auch bitte nicht als Duplikat von @ markierDie da die Frage ein bisschen anders ist und sich in den letzten 3 Jahren viel im Scala-Makroland verändert hat.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage