Skip to content

Update special types. #591

Open
Open
@ehuss

Description

@ehuss
Contributor

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?:
  • 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?

Activity

Havvy

Havvy commented on Apr 22, 2019

@Havvy
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @ehuss@Havvy

        Issue actions

          Update special types. · Issue #591 · rust-lang/reference