Module rustc_lint::types
source · Structs
Enums
Statics
The
improper_ctypes
lint detects incorrect use of types in foreign
modules.The
improper_ctypes_definitions
lint detects incorrect use of
extern
function definitions.The
invalid_atomic_ordering
lint detects passing an Ordering
to an atomic operation that does not support that ordering.The
overflowing_literals
lint detects literal out of range for its
type.The
unused_comparisons
lint detects comparisons made useless by
limits of the types involved.The
variant_size_differences
lint detects enums with widely varying
variant sizes.Functions
Given a non-null scalar (or transparent) type
ty
, return the nullable version of that type.
If the type passed in was not scalar, returns None.Attempts to special-case the overflowing literal lint when it occurs as a range endpoint (
expr..MAX+1
).
Returns true
iff the lint was emitted.Check if this enum can be safely exported based on the “nullable pointer optimization”. If it
can, return the type that
ty
can be safely converted to, otherwise return None
.
Currently restricted to function pointers, boxes, references, core::num::NonZero*
,
core::ptr::NonNull
, and #[repr(transparent)]
newtypes.
FIXME: This duplicates code in codegen.repr(transparent)
structs can have a single non-ZST field, this function returns that
field.Is type known to be non-null?