Hacker News new | past | comments | ask | show | jobs | submit login

> There's nothing special about Option, it's not a langitem for example

While Option is not a lang item, Some and None are. Because they are critical to the desugaring of `for` loops for instance.

Thus Option is, transitively, a lang item.




Good point, I'd forgotten Some and None are indeed needed to de-sugar for. Do you know of anywhere else the actual language guts need them ?


I can't think of an other one, but I won't claim exclusive knowledge of the language's desugaring.


The `?` operator works with Option. I know it is actually through the Try trait internally, but since it is only implemented for a few built-in type, it makes Option special.


Meh. That's just because it's an experimental / unstable trait.

That Rev or Peekable implement TrustedLen does not make them special.


Additionally, the compiler optimizes certain Option<T> types to not require additional storage space.


That optimization isn't specific to Option, it works for any enum.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: