Skip to content

Commit b82463f

Browse files
authored
Merge pull request #4169 from rust-lang/rustup-2025-02-01
Automatic Rustup
2 parents 829bfc3 + c925c82 commit b82463f

File tree

383 files changed

+3638
-2214
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

383 files changed

+3638
-2214
lines changed

Diff for: Cargo.lock

+2
Original file line numberDiff line numberDiff line change
@@ -4234,6 +4234,7 @@ name = "rustc_monomorphize"
42344234
version = "0.0.0"
42354235
dependencies = [
42364236
"rustc_abi",
4237+
"rustc_ast",
42374238
"rustc_attr_parsing",
42384239
"rustc_data_structures",
42394240
"rustc_errors",
@@ -4243,6 +4244,7 @@ dependencies = [
42434244
"rustc_middle",
42444245
"rustc_session",
42454246
"rustc_span",
4247+
"rustc_symbol_mangling",
42464248
"rustc_target",
42474249
"serde",
42484250
"serde_json",

Diff for: compiler/rustc_ast/src/expand/autodiff_attrs.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ pub struct AutoDiffItem {
7979
pub target: String,
8080
pub attrs: AutoDiffAttrs,
8181
}
82+
8283
#[derive(Clone, Eq, PartialEq, Encodable, Decodable, Debug, HashStable_Generic)]
8384
pub struct AutoDiffAttrs {
8485
/// Conceptually either forward or reverse mode AD, as described in various autodiff papers and
@@ -231,7 +232,7 @@ impl AutoDiffAttrs {
231232
self.ret_activity == DiffActivity::ActiveOnly
232233
}
233234

234-
pub fn error() -> Self {
235+
pub const fn error() -> Self {
235236
AutoDiffAttrs {
236237
mode: DiffMode::Error,
237238
ret_activity: DiffActivity::None,

Diff for: compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3777,7 +3777,7 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
37773777
let tcx = self.infcx.tcx;
37783778
if let Some(Terminator { kind: TerminatorKind::Call { call_source, fn_span, .. }, .. }) =
37793779
&self.body[loan.reserve_location.block].terminator
3780-
&& let Some((method_did, method_args)) = rustc_middle::util::find_self_call(
3780+
&& let Some((method_did, method_args)) = mir::find_self_call(
37813781
tcx,
37823782
self.body,
37833783
loan.assigned_place.local,

Diff for: compiler/rustc_borrowck/src/diagnostics/mod.rs

+4-7
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use rustc_middle::mir::tcx::PlaceTy;
1717
use rustc_middle::mir::{
1818
AggregateKind, CallSource, ConstOperand, ConstraintCategory, FakeReadCause, Local, LocalInfo,
1919
LocalKind, Location, Operand, Place, PlaceRef, ProjectionElem, Rvalue, Statement,
20-
StatementKind, Terminator, TerminatorKind,
20+
StatementKind, Terminator, TerminatorKind, find_self_call,
2121
};
2222
use rustc_middle::ty::print::Print;
2323
use rustc_middle::ty::{self, Ty, TyCtxt};
@@ -1016,12 +1016,9 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
10161016
kind: TerminatorKind::Call { fn_span, call_source, .. }, ..
10171017
}) = &self.body[location.block].terminator
10181018
{
1019-
let Some((method_did, method_args)) = rustc_middle::util::find_self_call(
1020-
self.infcx.tcx,
1021-
self.body,
1022-
target_temp,
1023-
location.block,
1024-
) else {
1019+
let Some((method_did, method_args)) =
1020+
find_self_call(self.infcx.tcx, self.body, target_temp, location.block)
1021+
else {
10251022
return normal_ret;
10261023
};
10271024

Diff for: compiler/rustc_codegen_cranelift/src/base.rs

+10
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,16 @@ fn codegen_fn_body(fx: &mut FunctionCx<'_, '_, '_>, start_block: Block) {
417417
Some(source_info.span),
418418
);
419419
}
420+
AssertKind::NullPointerDereference => {
421+
let location = fx.get_caller_location(source_info).load_scalar(fx);
422+
423+
codegen_panic_inner(
424+
fx,
425+
rustc_hir::LangItem::PanicNullPointerDereference,
426+
&[location],
427+
Some(source_info.span),
428+
)
429+
}
420430
_ => {
421431
let location = fx.get_caller_location(source_info).load_scalar(fx);
422432

Diff for: compiler/rustc_codegen_cranelift/src/constant.rs

+14-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use cranelift_module::*;
66
use rustc_data_structures::fx::FxHashSet;
77
use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags;
88
use rustc_middle::mir::interpret::{AllocId, GlobalAlloc, Scalar, read_target_uint};
9-
use rustc_middle::ty::{Binder, ExistentialTraitRef, ScalarInt};
9+
use rustc_middle::ty::{ExistentialTraitRef, ScalarInt};
1010

1111
use crate::prelude::*;
1212

@@ -167,7 +167,9 @@ pub(crate) fn codegen_const_value<'tcx>(
167167
&mut fx.constants_cx,
168168
fx.module,
169169
ty,
170-
dyn_ty.principal(),
170+
dyn_ty.principal().map(|principal| {
171+
fx.tcx.instantiate_bound_regions_with_erased(principal)
172+
}),
171173
);
172174
let local_data_id =
173175
fx.module.declare_data_in_func(data_id, &mut fx.bcx.func);
@@ -243,7 +245,7 @@ pub(crate) fn data_id_for_vtable<'tcx>(
243245
cx: &mut ConstantCx,
244246
module: &mut dyn Module,
245247
ty: Ty<'tcx>,
246-
trait_ref: Option<Binder<'tcx, ExistentialTraitRef<'tcx>>>,
248+
trait_ref: Option<ExistentialTraitRef<'tcx>>,
247249
) -> DataId {
248250
let alloc_id = tcx.vtable_allocation((ty, trait_ref));
249251
data_id_for_alloc_id(cx, module, alloc_id, Mutability::Not)
@@ -460,9 +462,15 @@ fn define_all_allocs(tcx: TyCtxt<'_>, module: &mut dyn Module, cx: &mut Constant
460462
GlobalAlloc::Memory(target_alloc) => {
461463
data_id_for_alloc_id(cx, module, alloc_id, target_alloc.inner().mutability)
462464
}
463-
GlobalAlloc::VTable(ty, dyn_ty) => {
464-
data_id_for_vtable(tcx, cx, module, ty, dyn_ty.principal())
465-
}
465+
GlobalAlloc::VTable(ty, dyn_ty) => data_id_for_vtable(
466+
tcx,
467+
cx,
468+
module,
469+
ty,
470+
dyn_ty
471+
.principal()
472+
.map(|principal| tcx.instantiate_bound_regions_with_erased(principal)),
473+
),
466474
GlobalAlloc::Static(def_id) => {
467475
if tcx.codegen_fn_attrs(def_id).flags.contains(CodegenFnAttrFlags::THREAD_LOCAL)
468476
{

Diff for: compiler/rustc_codegen_cranelift/src/unsize.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,12 @@ pub(crate) fn unsized_info<'tcx>(
6161
old_info
6262
}
6363
}
64-
(_, ty::Dynamic(data, ..)) => crate::vtable::get_vtable(fx, source, data.principal()),
64+
(_, ty::Dynamic(data, ..)) => crate::vtable::get_vtable(
65+
fx,
66+
source,
67+
data.principal()
68+
.map(|principal| fx.tcx.instantiate_bound_regions_with_erased(principal)),
69+
),
6570
_ => bug!("unsized_info: invalid unsizing {:?} -> {:?}", source, target),
6671
}
6772
}

Diff for: compiler/rustc_codegen_cranelift/src/vtable.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ pub(crate) fn get_ptr_and_method_ref<'tcx>(
9090
pub(crate) fn get_vtable<'tcx>(
9191
fx: &mut FunctionCx<'_, '_, 'tcx>,
9292
ty: Ty<'tcx>,
93-
trait_ref: Option<ty::PolyExistentialTraitRef<'tcx>>,
93+
trait_ref: Option<ty::ExistentialTraitRef<'tcx>>,
9494
) -> Value {
9595
let data_id = data_id_for_vtable(fx.tcx, &mut fx.constants_cx, fx.module, ty, trait_ref);
9696
let local_data_id = fx.module.declare_data_in_func(data_id, fx.bcx.func);

Diff for: compiler/rustc_codegen_gcc/src/common.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,12 @@ impl<'gcc, 'tcx> ConstCodegenMethods<'tcx> for CodegenCx<'gcc, 'tcx> {
234234
GlobalAlloc::VTable(ty, dyn_ty) => {
235235
let alloc = self
236236
.tcx
237-
.global_alloc(self.tcx.vtable_allocation((ty, dyn_ty.principal())))
237+
.global_alloc(self.tcx.vtable_allocation((
238+
ty,
239+
dyn_ty.principal().map(|principal| {
240+
self.tcx.instantiate_bound_regions_with_erased(principal)
241+
}),
242+
)))
238243
.unwrap_memory();
239244
let init = const_alloc_to_gcc(self, alloc);
240245
self.static_addr_of(init, alloc.inner().align, None)

Diff for: compiler/rustc_codegen_gcc/src/context.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use rustc_middle::ty::layout::{
1414
FnAbiError, FnAbiOf, FnAbiOfHelpers, FnAbiRequest, HasTyCtxt, HasTypingEnv, LayoutError,
1515
LayoutOfHelpers,
1616
};
17-
use rustc_middle::ty::{self, Instance, PolyExistentialTraitRef, Ty, TyCtxt};
17+
use rustc_middle::ty::{self, ExistentialTraitRef, Instance, Ty, TyCtxt};
1818
use rustc_session::Session;
1919
use rustc_span::source_map::respan;
2020
use rustc_span::{DUMMY_SP, Span};
@@ -90,7 +90,7 @@ pub struct CodegenCx<'gcc, 'tcx> {
9090
pub function_instances: RefCell<FxHashMap<Instance<'tcx>, Function<'gcc>>>,
9191
/// Cache generated vtables
9292
pub vtables:
93-
RefCell<FxHashMap<(Ty<'tcx>, Option<ty::PolyExistentialTraitRef<'tcx>>), RValue<'gcc>>>,
93+
RefCell<FxHashMap<(Ty<'tcx>, Option<ty::ExistentialTraitRef<'tcx>>), RValue<'gcc>>>,
9494

9595
// TODO(antoyo): improve the SSA API to not require those.
9696
/// Mapping from function pointer type to indexes of on stack parameters.
@@ -401,7 +401,7 @@ impl<'gcc, 'tcx> BackendTypes for CodegenCx<'gcc, 'tcx> {
401401
impl<'gcc, 'tcx> MiscCodegenMethods<'tcx> for CodegenCx<'gcc, 'tcx> {
402402
fn vtables(
403403
&self,
404-
) -> &RefCell<FxHashMap<(Ty<'tcx>, Option<PolyExistentialTraitRef<'tcx>>), RValue<'gcc>>> {
404+
) -> &RefCell<FxHashMap<(Ty<'tcx>, Option<ExistentialTraitRef<'tcx>>), RValue<'gcc>>> {
405405
&self.vtables
406406
}
407407

Diff for: compiler/rustc_codegen_gcc/src/debuginfo.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use rustc_data_structures::sync::Lrc;
77
use rustc_index::bit_set::DenseBitSet;
88
use rustc_index::{Idx, IndexVec};
99
use rustc_middle::mir::{self, Body, SourceScope};
10-
use rustc_middle::ty::{Instance, PolyExistentialTraitRef, Ty};
10+
use rustc_middle::ty::{ExistentialTraitRef, Instance, Ty};
1111
use rustc_session::config::DebugInfo;
1212
use rustc_span::{BytePos, Pos, SourceFile, SourceFileAndLine, Span, Symbol};
1313
use rustc_target::abi::Size;
@@ -214,7 +214,7 @@ impl<'gcc, 'tcx> DebugInfoCodegenMethods<'tcx> for CodegenCx<'gcc, 'tcx> {
214214
fn create_vtable_debuginfo(
215215
&self,
216216
_ty: Ty<'tcx>,
217-
_trait_ref: Option<PolyExistentialTraitRef<'tcx>>,
217+
_trait_ref: Option<ExistentialTraitRef<'tcx>>,
218218
_vtable: Self::Value,
219219
) {
220220
// TODO(antoyo)

Diff for: compiler/rustc_codegen_gcc/tests/run/int.rs

-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
// Run-time:
44
// status: 0
55

6-
#![feature(const_black_box)]
7-
86
/*
97
* Code
108
*/

Diff for: compiler/rustc_codegen_llvm/src/builder/autodiff.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ fn generate_enzyme_call<'ll>(
6262
// add outer_fn name to ad_name to make it unique, in case users apply autodiff to multiple
6363
// functions. Unwrap will only panic, if LLVM gave us an invalid string.
6464
let name = llvm::get_value_name(outer_fn);
65-
let outer_fn_name = std::ffi::CStr::from_bytes_with_nul(name).unwrap().to_str().unwrap();
66-
ad_name.push_str(outer_fn_name.to_string().as_str());
65+
let outer_fn_name = std::str::from_utf8(name).unwrap();
66+
ad_name.push_str(outer_fn_name);
6767

6868
// Let us assume the user wrote the following function square:
6969
//
@@ -255,14 +255,14 @@ fn generate_enzyme_call<'ll>(
255255
// have no debug info to copy, which would then be ok.
256256
trace!("no dbg info");
257257
}
258+
258259
// Now that we copied the metadata, get rid of dummy code.
259-
llvm::LLVMRustEraseInstBefore(entry, last_inst);
260-
llvm::LLVMRustEraseInstFromParent(last_inst);
260+
llvm::LLVMRustEraseInstUntilInclusive(entry, last_inst);
261261

262-
if cx.val_ty(outer_fn) != cx.type_void() {
263-
builder.ret(call);
264-
} else {
262+
if cx.val_ty(call) == cx.type_void() {
265263
builder.ret_void();
264+
} else {
265+
builder.ret(call);
266266
}
267267

268268
// Let's crash in case that we messed something up above and generated invalid IR.

Diff for: compiler/rustc_codegen_llvm/src/common.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,12 @@ impl<'ll, 'tcx> ConstCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
314314
GlobalAlloc::VTable(ty, dyn_ty) => {
315315
let alloc = self
316316
.tcx
317-
.global_alloc(self.tcx.vtable_allocation((ty, dyn_ty.principal())))
317+
.global_alloc(self.tcx.vtable_allocation((
318+
ty,
319+
dyn_ty.principal().map(|principal| {
320+
self.tcx.instantiate_bound_regions_with_erased(principal)
321+
}),
322+
)))
318323
.unwrap_memory();
319324
let init = const_alloc_to_llvm(self, alloc, /*static*/ false);
320325
let value = self.static_addr_of_impl(init, alloc.inner().align, None);

Diff for: compiler/rustc_codegen_llvm/src/context.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,7 @@ pub(crate) struct CodegenCx<'ll, 'tcx> {
7777
/// Cache instances of monomorphic and polymorphic items
7878
pub instances: RefCell<FxHashMap<Instance<'tcx>, &'ll Value>>,
7979
/// Cache generated vtables
80-
pub vtables:
81-
RefCell<FxHashMap<(Ty<'tcx>, Option<ty::PolyExistentialTraitRef<'tcx>>), &'ll Value>>,
80+
pub vtables: RefCell<FxHashMap<(Ty<'tcx>, Option<ty::ExistentialTraitRef<'tcx>>), &'ll Value>>,
8281
/// Cache of constant strings,
8382
pub const_str_cache: RefCell<FxHashMap<String, &'ll Value>>,
8483

@@ -663,15 +662,14 @@ impl<'ll> SimpleCx<'ll> {
663662
impl<'ll, 'tcx> MiscCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
664663
fn vtables(
665664
&self,
666-
) -> &RefCell<FxHashMap<(Ty<'tcx>, Option<ty::PolyExistentialTraitRef<'tcx>>), &'ll Value>>
667-
{
665+
) -> &RefCell<FxHashMap<(Ty<'tcx>, Option<ty::ExistentialTraitRef<'tcx>>), &'ll Value>> {
668666
&self.vtables
669667
}
670668

671669
fn apply_vcall_visibility_metadata(
672670
&self,
673671
ty: Ty<'tcx>,
674-
poly_trait_ref: Option<ty::PolyExistentialTraitRef<'tcx>>,
672+
poly_trait_ref: Option<ty::ExistentialTraitRef<'tcx>>,
675673
vtable: &'ll Value,
676674
) {
677675
apply_vcall_visibility_metadata(self, ty, poly_trait_ref, vtable);

Diff for: compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ struct UsageSets<'tcx> {
298298
/// Prepare sets of definitions that are relevant to deciding whether something
299299
/// is an "unused function" for coverage purposes.
300300
fn prepare_usage_sets<'tcx>(tcx: TyCtxt<'tcx>) -> UsageSets<'tcx> {
301-
let MonoItemPartitions { all_mono_items, codegen_units } =
301+
let MonoItemPartitions { all_mono_items, codegen_units, .. } =
302302
tcx.collect_and_partition_mono_items(());
303303

304304
// Obtain a MIR body for each function participating in codegen, via an

Diff for: compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use rustc_hir::def_id::{DefId, LOCAL_CRATE};
1313
use rustc_middle::bug;
1414
use rustc_middle::ty::layout::{HasTypingEnv, LayoutOf, TyAndLayout};
1515
use rustc_middle::ty::{
16-
self, AdtKind, CoroutineArgsExt, Instance, PolyExistentialTraitRef, Ty, TyCtxt, Visibility,
16+
self, AdtKind, CoroutineArgsExt, ExistentialTraitRef, Instance, Ty, TyCtxt, Visibility,
1717
};
1818
use rustc_session::config::{self, DebugInfo, Lto};
1919
use rustc_span::{DUMMY_SP, FileName, FileNameDisplayPreference, SourceFile, Symbol, hygiene};
@@ -1399,7 +1399,7 @@ pub(crate) fn build_global_var_di_node<'ll>(
13991399
fn build_vtable_type_di_node<'ll, 'tcx>(
14001400
cx: &CodegenCx<'ll, 'tcx>,
14011401
ty: Ty<'tcx>,
1402-
poly_trait_ref: Option<ty::PolyExistentialTraitRef<'tcx>>,
1402+
poly_trait_ref: Option<ty::ExistentialTraitRef<'tcx>>,
14031403
) -> &'ll DIType {
14041404
let tcx = cx.tcx;
14051405

@@ -1510,7 +1510,7 @@ fn find_vtable_behind_cast<'ll>(vtable: &'ll Value) -> &'ll Value {
15101510
pub(crate) fn apply_vcall_visibility_metadata<'ll, 'tcx>(
15111511
cx: &CodegenCx<'ll, 'tcx>,
15121512
ty: Ty<'tcx>,
1513-
trait_ref: Option<PolyExistentialTraitRef<'tcx>>,
1513+
trait_ref: Option<ExistentialTraitRef<'tcx>>,
15141514
vtable: &'ll Value,
15151515
) {
15161516
// FIXME(flip1995): The virtual function elimination optimization only works with full LTO in
@@ -1531,7 +1531,7 @@ pub(crate) fn apply_vcall_visibility_metadata<'ll, 'tcx>(
15311531
let vtable = find_vtable_behind_cast(vtable);
15321532
let trait_ref_self = trait_ref.with_self_ty(cx.tcx, ty);
15331533
let trait_ref_self = cx.tcx.erase_regions(trait_ref_self);
1534-
let trait_def_id = trait_ref_self.def_id();
1534+
let trait_def_id = trait_ref_self.def_id;
15351535
let trait_vis = cx.tcx.visibility(trait_def_id);
15361536

15371537
let cgus = cx.sess().codegen_units().as_usize();
@@ -1590,7 +1590,7 @@ pub(crate) fn apply_vcall_visibility_metadata<'ll, 'tcx>(
15901590
pub(crate) fn create_vtable_di_node<'ll, 'tcx>(
15911591
cx: &CodegenCx<'ll, 'tcx>,
15921592
ty: Ty<'tcx>,
1593-
poly_trait_ref: Option<ty::PolyExistentialTraitRef<'tcx>>,
1593+
poly_trait_ref: Option<ty::ExistentialTraitRef<'tcx>>,
15941594
vtable: &'ll Value,
15951595
) {
15961596
if cx.dbg_cx.is_none() {

Diff for: compiler/rustc_codegen_llvm/src/debuginfo/metadata/type_map.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use rustc_data_structures::fx::FxHashMap;
66
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
77
use rustc_macros::HashStable;
88
use rustc_middle::bug;
9-
use rustc_middle::ty::{self, PolyExistentialTraitRef, Ty, TyCtxt};
9+
use rustc_middle::ty::{self, ExistentialTraitRef, Ty, TyCtxt};
1010

1111
use super::{DefinitionLocation, SmallVec, UNKNOWN_LINE_NUMBER, unknown_file_metadata};
1212
use crate::common::{AsCCharPtr, CodegenCx};
@@ -44,7 +44,7 @@ pub(super) enum UniqueTypeId<'tcx> {
4444
/// The ID for the additional wrapper struct type describing an enum variant in CPP-like mode.
4545
VariantStructTypeCppLikeWrapper(Ty<'tcx>, VariantIdx, private::HiddenZst),
4646
/// The ID of the artificial type we create for VTables.
47-
VTableTy(Ty<'tcx>, Option<PolyExistentialTraitRef<'tcx>>, private::HiddenZst),
47+
VTableTy(Ty<'tcx>, Option<ExistentialTraitRef<'tcx>>, private::HiddenZst),
4848
}
4949

5050
impl<'tcx> UniqueTypeId<'tcx> {
@@ -88,7 +88,7 @@ impl<'tcx> UniqueTypeId<'tcx> {
8888
pub(crate) fn for_vtable_ty(
8989
tcx: TyCtxt<'tcx>,
9090
self_type: Ty<'tcx>,
91-
implemented_trait: Option<PolyExistentialTraitRef<'tcx>>,
91+
implemented_trait: Option<ExistentialTraitRef<'tcx>>,
9292
) -> Self {
9393
assert_eq!(
9494
self_type,

Diff for: compiler/rustc_codegen_llvm/src/debuginfo/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -588,7 +588,7 @@ impl<'ll, 'tcx> DebugInfoCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
588588
fn create_vtable_debuginfo(
589589
&self,
590590
ty: Ty<'tcx>,
591-
trait_ref: Option<ty::PolyExistentialTraitRef<'tcx>>,
591+
trait_ref: Option<ty::ExistentialTraitRef<'tcx>>,
592592
vtable: Self::Value,
593593
) {
594594
metadata::create_vtable_di_node(self, ty, trait_ref, vtable)

0 commit comments

Comments
 (0)