Shuffling Range in Scala ist ungerade

8

Sehen Sie sich diese REPL-Sitzung an (ich habe sie zur besseren Lesbarkeit aufgeräumt):

%Vor%

Erstens sollte dies unabhängig von der Tatsache funktionieren, dass die Typen unterschiedlich sind. Die Frage ist "Warum?"

    
Scoobie 08.05.2015, 20:04
quelle

2 Antworten

5

Es ist SI-6948, einen Fehler , der durch fundamentale verursacht wurde Scala Gebrochenheit.

Hier ist eine schöne lange Commit-Nachricht mit einigen zusätzlichen Erklärungen.

    
extempore 09.05.2015 00:57
quelle
2

Aus irgendeinem Grund erzeugt die Inferenz für shuffle ein anderes Ergebnis für Inclusive als für Range .

Der Grund, warum toSeq in Range resultiert, ist, dass seine Definition den Typ unschuldig verengt:

%Vor%

Es gibt ein offenes Problem, stattdessen den Ergebnistyp der überschriebenen Methode abzuleiten.

Zeigen, dass die REPL nicht lügt:

%Vor%

Snippen, um zu sehen, was gefolgert wurde und was implizit verwendet wurde:

%Vor%

statt, was du gehofft hast:

%Vor%

Mit -Ytyper-debug gibt es einen zusätzlichen Typ param A , der es für Inclusive weiterlaufen lässt, aber ich weiß nicht, woher das kommt.

%Vor%

Ist es ein Fehler oder ein Verhalten?

Machen Sie es deutlich:

%Vor%     
som-snytt 08.05.2015 23:33
quelle

Tags und Links