Module marker_api::sem

source ·
Expand description

A module containing semantic representations of types, generics and other parts of the language.

Structs

  • The semantic representation of an abstract data type. This can be an Enum, Struct, or Union.
  • The semantic representation of a type alias.
  • The semantic representation of an array with a known size like: [T; N]
  • A semantic generic bound in the form <identifier=type>. For example, Item=i32 would be the generic binding here:
  • The semantic representation of the bool type.
  • The semantic representation of a closure type.
  • The semantic equivalent of a ConstExpr, at least theoretically. This part of the API is sadly not done yet, so this is just a placeholder.
  • The semantic representation of a function pointer, like fn (T) -> U
  • A function item type identifying a specific function and potentualy additional generics.
  • The semantic representation of generic arguments for an item or path.
  • The semantic representation of a generic type. For example
  • The semantic representation of the never type !.
  • The semantic representation of a numeric type like u32, i32, f64.
  • The semantic representation of a raw pointer like *const T or *mut T
  • The semantic representation of a reference like &T or &mut T
  • The semantic representation of a variable length slice like [T]
  • The semantic representation of a textual type like char or str.
  • A semantic trait bound used by TraitTy
  • The semantic representation of a trait object.
  • The semantic representation of a tuple type like () or (T, U)
  • The placeholder type, signalling that the semantic type is still unstable and therefor not represented as part of the API.
  • The declared visibility of an item or field.

Enums