Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Rust uses a mixture of affine and ... "regular"? types. My understanding is that affine is a looser version of linear because the type doesn't have to be consumed.

You can have dtors in non-affine types (types that implement the Copy trait) in Rust as well. I'm really only talking about C++ style destructors. Those don't require linear or affine types. But, I agree, that in a managed language, having a linear type is one way to get predictable destructors to run.

Strangely, Swift has deinit{} for its class types (ref-counted), but not for its struct types (value types).



You cannot implement Drop for a Copy type.


Fair enough! I never wanted to implement Drop on a Copy type, but I assumed you could.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: