Gegeben:
%Vor% Warum haben Foo.apply _
und Foo.unapply _
unterschiedliche Signaturen, nämlich Int(1)
bzw. Int
?
Soweit ich das beurteilen kann, wird in scala.tools.nsc.typechecker.Namers
(Compilercode), apply
verwendet von completerOf
und caseApplyMethodCompleter
erzeugt, während unapply
verwendet , um nur aus completerOf
zu kommen. Dieser und wahrscheinlich andere Faktoren, wahrscheinlich einige subtile Fehler, führen dazu, dass unapply
die Typinformation verliert. Diese Änderung führt zu einer neuen Umgestaltung des Codes und dazu, dass beide -Methoden die neuen% durchlaufen. co_de%, das behebt es. Da es kein Ticket zu diesem Problem zu geben scheint, wird die wahre Ursache einige zusätzliche Grabungen erfordern. Es ist wahrscheinlich davon auszugehen, dass dies kein beabsichtigtes Verhalten war.