Skip to main content

Module types

Module types 

Source

Re-exportsΒ§

use std::iter; πŸ”’
use rustc_abi::BackendRepr; πŸ”’
use rustc_abi::TagEncoding; πŸ”’
use rustc_abi::Variants; πŸ”’
use rustc_abi::WrappingRange; πŸ”’
use rustc_ast as ast; πŸ”’
use rustc_ast::util::parser::ExprPrecedence; πŸ”’
use rustc_attr_ir::find_attr; πŸ”’
use rustc_attr_ir::lang_items::LangItem; πŸ”’
use rustc_hir as hir; πŸ”’
use rustc_hir::Expr; πŸ”’
use rustc_hir::ExprKind; πŸ”’
use rustc_hir::HirId; πŸ”’
use rustc_lint_defs::declare_lint; πŸ”’
use rustc_lint_defs::declare_lint_pass; πŸ”’
use rustc_lint_defs::impl_lint_pass; πŸ”’
use rustc_middle::ty::layout::LayoutOf; πŸ”’
use rustc_middle::ty::layout::SizeSkeleton; πŸ”’
use rustc_middle::ty; πŸ”’
use rustc_middle::ty::Ty; πŸ”’
use rustc_middle::ty::TyCtxt; πŸ”’
use rustc_middle::ty::TypeVisitableExt; πŸ”’
use rustc_middle::ty::Unnormalized; πŸ”’
use rustc_span::DUMMY_SP; πŸ”’
use rustc_span::Span; πŸ”’
use rustc_span::Symbol; πŸ”’
use rustc_span::bug; πŸ”’
use rustc_span::sym; πŸ”’
use tracing::debug; πŸ”’
pub(crate) use improper_ctypes::ImproperCTypesLint; πŸ”’
use crate::diagnostics::AmbiguousWidePointerComparisons; πŸ”’
use crate::diagnostics::AmbiguousWidePointerComparisonsAddrMetadataSuggestion; πŸ”’
use crate::diagnostics::AmbiguousWidePointerComparisonsAddrSuggestion; πŸ”’
use crate::diagnostics::AmbiguousWidePointerComparisonsCastSuggestion; πŸ”’
use crate::diagnostics::AmbiguousWidePointerComparisonsExpectSuggestion; πŸ”’
use crate::diagnostics::AtomicOrderingFence; πŸ”’
use crate::diagnostics::AtomicOrderingLoad; πŸ”’
use crate::diagnostics::AtomicOrderingStore; πŸ”’
use crate::diagnostics::InvalidAtomicOrderingDiag; πŸ”’
use crate::diagnostics::InvalidNanComparisons; πŸ”’
use crate::diagnostics::InvalidNanComparisonsSuggestion; πŸ”’
use crate::diagnostics::UnpredictableFunctionPointerComparisons; πŸ”’
use crate::diagnostics::UnpredictableFunctionPointerComparisonsSuggestion; πŸ”’
use crate::diagnostics::UnusedComparisons; πŸ”’
use crate::diagnostics::VariantSizeDifferencesDiag; πŸ”’
use crate::utils::std_or_core; πŸ”’
use crate::LateContext; πŸ”’
use crate::LateLintPass; πŸ”’
use crate::LintContext; πŸ”’
use literal::int_ty_range; πŸ”’
use literal::lint_literal; πŸ”’
use literal::uint_ty_range; πŸ”’

ModulesΒ§

improper_ctypes πŸ”’
literal πŸ”’

StructsΒ§

InvalidAtomicOrdering
NegationInfo πŸ”’
TypeLimits πŸ”’
VariantSizeDifferences

EnumsΒ§

ComparisonOp πŸ”’

StaticsΒ§

AMBIGUOUS_WIDE_POINTER_COMPARISONS πŸ”’
The ambiguous_wide_pointer_comparisons lint checks comparison of *const/*mut ?Sized as the operands.
INVALID_ATOMIC_ORDERING πŸ”’
The invalid_atomic_ordering lint detects passing an Ordering to an atomic operation that does not support that ordering.
INVALID_NAN_COMPARISONS πŸ”’
The invalid_nan_comparisons lint checks comparisons with the NAN constants of f16, f32, f64, and f128.
OVERFLOWING_LITERALS πŸ”’
The overflowing_literals lint detects literals out of range for their type.
UNPREDICTABLE_FUNCTION_POINTER_COMPARISONS πŸ”’
The unpredictable_function_pointer_comparisons lint checks comparison of function pointer as the operands.
UNUSED_COMPARISONS πŸ”’
The unused_comparisons lint detects comparisons made useless by limits of the types involved.
VARIANT_SIZE_DIFFERENCES πŸ”’
The variant_size_differences lint detects enums with widely varying variant sizes.

FunctionsΒ§

get_nullable_type πŸ”’
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.
get_nullable_type_from_pat πŸ”’
is_niche_optimization_candidate πŸ”’
A type is niche-optimization candidate iff:
lint_fn_pointer πŸ”’
lint_nan πŸ”’
lint_wide_pointer πŸ”’
nonnull_optimization_guaranteed πŸ”’
pat_ty_is_known_nonnull πŸ”’
repr_nullable_ptr πŸ”’
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.
transparent_newtype_field πŸ”’
repr(transparent) structs can have a single non-1-ZST field, this function returns that field.
ty_is_known_nonnull πŸ”’
Is type known to be non-null?