Open
Description
I think there are some types missing from special-types-and-traits.md. In particular, I think Fn
, FnMut
, and FnOnce
are special. What is the criteria for being special? Is there anything else missing from the list?
Things to consider adding:
- cmp:
- Eq
- PartialEq
- Ord
- PartialOrd
- ops:
- Add
- AddAssign
- BitAnd
- BitAndAssign
- BitOr
- BitOrAssign
- BitXor
- BitXorAssign
- Div
- DivAssign
- Fn
- FnMut
- FnOnce
- Index
- IndexMut
- Mul
- MulAssign
- Neg
- Not
- Rem
- RemAssign
- Shl
- ShlAssign
- Shr
- ShrAssign
- Sub
- SubAssign
- Misc:
- Unpin — Automatically implemented on most types, but not otherwise "used" by the language?
- Future
- ManuallyDrop
- IntoIterator
- IntoFuture
- Unstable but maybe exposed in some way?:
Termination — Exposed indirectly viaDone in Document the Termination trait for main() and test functions #1194main
.- Unsize / CoerceUnsized — Automatically implemented, involved in coercions?
- UnsafeCell — Maybe for const eval?
- StructuralPartialEq / StructuralEq — Needed for match checking?
- Unstable (not exposed?):
- Generator, GeneratorState
- Try
- DispatchFromDyn ()
- VaListImpl (va_list lang item)
- Receiver (currently hard-coded in reference)
- start
- eh_personality
- eh_catch_typeinfo
- Panic stuff — From a language perspective, is there anything relevant here?
- Relevance unknown:
- Freeze
- exchange_malloc
- box_free
- drop_in_place
- oom
- alloc_layout
- MaybeUninit
- align_offset — const eval?
Metadata
Metadata
Assignees
Labels
No labels