From 85a4d2af9031c4715bfba2af25f8b8e9d3eaba15 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Tue, 17 Sep 2024 08:27:26 +1000 Subject: [PATCH] Tweak and explain the `BuilderMethods`/`CodegenMethods` connection. --- compiler/rustc_codegen_ssa/src/traits/builder.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/rustc_codegen_ssa/src/traits/builder.rs b/compiler/rustc_codegen_ssa/src/traits/builder.rs index c88bd7c82bc..98cb497766a 100644 --- a/compiler/rustc_codegen_ssa/src/traits/builder.rs +++ b/compiler/rustc_codegen_ssa/src/traits/builder.rs @@ -17,7 +17,7 @@ use super::debuginfo::DebugInfoBuilderMethods; use super::intrinsic::IntrinsicCallBuilderMethods; use super::misc::MiscMethods; use super::type_::{ArgAbiBuilderMethods, BaseTypeMethods, LayoutTypeMethods}; -use super::{BackendTypes, CodegenMethods, StaticBuilderMethods}; +use super::{CodegenMethods, StaticBuilderMethods}; use crate::common::{ AtomicOrdering, AtomicRmwBinOp, IntPredicate, RealPredicate, SynchronizationScope, TypeKind, }; @@ -45,8 +45,11 @@ pub trait BuilderMethods<'a, 'tcx>: + AsmBuilderMethods<'tcx> + StaticBuilderMethods { - type CodegenCx: CodegenMethods<'tcx> - + BackendTypes< + // `BackendTypes` is a supertrait of both `CodegenMethods` and + // `BuilderMethods`. This bound ensures all impls agree on the associated + // types within. + type CodegenCx: CodegenMethods< + 'tcx, Value = Self::Value, Function = Self::Function, BasicBlock = Self::BasicBlock,