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 ofextern
function definitions. - The
invalid_atomic_ordering
lint detects passing anOrdering
to an atomic operation that does not support that ordering. - The
invalid_nan_comparisons
lint checks comparison withf32::NAN
orf64::NAN
as one of the operand. - 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. - lint_nan 🔒
- Attempts to special-case the overflowing literal lint when it occurs as a range endpoint (
expr..MAX+1
). Returnstrue
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 returnNone
. 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-1-ZST field, this function returns that field.- Is type known to be non-null?