Testen Sie, ob c.universe.Type einem anderen Typ in einem Makro zugewiesen werden kann

9

Ich versuche, ein Makro zu schreiben, das eine Klasse mit einer Java-Bean-Schnittstelle und einer Fallklasse verwendet und ein Paar Methoden für die Zuordnung zwischen ihnen erstellt.

Ich versuche zu überprüfen, dass die Typen für jede Eigenschaft übereinstimmen, die Typen in der Java-Bean sind jedoch z. java.lang.Long und die Typen in der Fallklasse sind scala.Long.

Meine Frage ist, gibt es angesichts des c.universe.Type-Objekts für diese 2 eine Möglichkeit zu testen, ob es implizite Konvertierungen zwischen ihnen gibt? d. h., um zu testen, ob ich einen an eine Methode übergeben kann, die den anderen erwartet.

    
Angelo Genovese 30.06.2015, 14:34
quelle

1 Antwort

0

Wenn Sie prüfen möchten, ob eine implizite Konvertierung existiert, können Sie c.inferImplicitView verwenden.

Beweis des Konzepts:

%Vor%

Wenn du kein value hast, funktioniert das anscheinend auch, wenn du c.inferImplicitView(EmptyTree, weakTypeOf[T], weakTypeOf[S]) hast.

Ein komplexeres Beispiel näher am aktuellen Problem:

%Vor%     
Jasper-M 04.01.2017 11:28
quelle

Tags und Links