I think there are some types missing from special-types-and-traits.md. In particular, I thinkFn, 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 via main. Done in #1194
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?
And type or trait is special if it requires or is a dependency of compiler machinery. The types you think are missing are probably the operator traits and we should probably duplicate that list into the page.
I think there are some types missing from special-types-and-traits.md. In particular, I think
Fn
,FnMut
, andFnOnce
are special. What is the criteria for being special? Is there anything else missing from the list?Things to consider adding:
Termination — Exposed indirectly viaDone in #1194main
.