Angenommen, ich habe:
%Vor%Dies kompiliert:
%Vor%Dies schlägt fehl:
%Vor%... mit:
%Vor%Ich habe versucht, abstrakte Typen anstelle von Typparametern mit dem gleichen Ergebnis zu verwenden. Das einzige Problem, das ich fand, war, den Typ zu instantiieren. Dies kompiliert:
%Vor%Leider arbeite ich mit Phantom-Typen, die keine Laufzeit-Instanzen haben, oft aus Performance-Gründen.
Warum erzeugt Scala hier einen Kompilierfehler? Gibt es eine bessere Work-around?
Danke für jede Hilfe.
Update: Neben der unten beschriebenen Problemumgehung benötigte ich eine Möglichkeit, um Typen mit abstrakten Typgrenzen zu überschreiben. Ich habe das so gemacht:
%Vor%Wie wäre es mit:
%Vor%Scala hat vergessen, generischen (oder einen anderen "abstrakten" Typ) zu suchen, bevor der Parameter alias eingegeben wurde. Vorausgesetzt, dass =: = funktioniert gut - scheint wie ein Fehler für mich. Vielleicht implicits sind auf einer anderen Kompilierungsebene oder kurz vor dieser Überprüfung aufzulösen.
Tags und Links scala types type-bounds phantom-types