Ini adalah bug. Yang telah diperbaiki dengan https://github.com/rakudo/rakudo/commit/f70d95e299 .
Alasan mengapa ia bertindak secara berbeda Rat
daripada untuk jenis lainnya, adalah bahwa Rat
kasus ini dioptimalkan untuk tidak harus melakukan paksaan, dan dengan demikian tidak perlu memeriksa hasil dari paksaan. Dalam hal ini, nilainya dimasukkan langsung ke Duration
objek baru . Namun, ia melakukannya tanpa menghapus wadah, sehingga Duration
objek sebenarnya akan mereferensikan variabel $x
dari contoh Anda. Ini semua baik - baik saja secara umum, tetapi.gist
entah bagaimana logika membuat loop tak terbatas mencoba membuat representasi Duration
karena referensi-diri ini. Harus kuakui aku tidak benar-benar melihat ke mana tepatnya ia berada dalam satu lingkaran.
Ngomong-ngomong, dengan memastikan bahwa nilai didekontainerkan di dalam Duration
objek, masalahnya hilang karena tidak bisa menjadi referensi sendiri lagi.