Ihr Problem betrifft nicht %code% . Es kann tatsächlich vereinfacht werden als:
%Vor%%code% kann als %code% "dargestellt" werden. Beachten Sie, dass %code% .
Wenn der Compiler versucht, eine implizite %code% zu erhalten, beschwert er sich über divergierende implizite Erweiterung: %code% und %code% .
Zurück zu Ihrem ursprünglichen Code, könnte eine einfache Lösung sein, einfach %code% wie neu zu schreiben:
%Vor%Angenommen, ich würde die generische Darstellung der Fallklasse wie beschrieben durchlaufen hier
Ich habe eine Typklasse definiert, um Felder zu beschreiben:
%Vor%Definierte eine Instanz:
%Vor%Und allgemeiner Benutzer:
%Vor%So, jetzt könnte ich schreiben
%Vor%und hole
res1: String = Punkt {x: 1.000, y: 2.000, z: 3.000}
Nun möchte ich einige Feldmetadaten mit %code% tags definieren:
%Vor%So erzeugt %code% jetzt erfolgreich
res2: String = 0,500 [unsichtbar]
Aber mit neu definiert
%Vor%ergibt einen Kompilierungsfehler:
Fehler: divergierende implizite Erweiterung für Typ %Code% beginnend mit der Methode %code% in der Klasse ...
Ich nehme an, dass der Typ %code% sich nicht als %code% identifiziert, aber nicht erraten konnte, wie er behoben werden kann.
Wie könnte man für eine solche Situation richtiges %code% definieren?