Typinferenz Probleme mit function types #361
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Im Zusammenhang mit function types scheint es teilweise Probleme mit der Typinferenz zu geben.
Dazu folgendes Beispielprogramm, welches alle Zahlen <=2 aus einer Liste filtert:
Dieser code kompiliert in wenigen Sekunden. Wenn nun allerdings der Typ der Liste durch var ersetzt wird, rechnet der Inferenzalgorithmus mehrere Minuten, bis er terminiert.
Das Problem scheint mit der Verwendung der Liste in der Stream API zusammenhängen. Wenn diese Zeile entfernt wird, terminiert das Programm wieder augenblicklich.
Wrappe ich z.B. die Liste in eine ArrayList, crasht das Programm auf meinem Rechner (JVM mit 2GB RAM) nur noch, weil der Heap nach einiger Zeit voll läuft. Ich denke das sollte bei so einem simplen Programm nicht sein, zumal das hier simple "lokale Typinferenz" ist, d.h. der Typ kann einfach von der Expression auf der rechten Seite übernommen werden.