Skip to content

Commit 8d81050

Browse files
committed
bump toolchain and fix compilation errors in codegen
1 parent 542003f commit 8d81050

File tree

6 files changed

+20
-20
lines changed

6 files changed

+20
-20
lines changed

codegen/rust-toolchain.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[toolchain]
22
components = ["clippy", "rust-src", "rustc-dev", "llvm-tools"]
3-
channel = "nightly-2025-06-27"
3+
channel = "nightly-2025-11-08"

codegen/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(rustc_private, let_chains)]
1+
#![feature(rustc_private)]
22
#![deny(rustc::internal)]
33

44
extern crate rustc_ast;

codegen/src/passes/cache_traits.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::{
1010

1111
fn dump_traits(tcx: &TyCtxt) -> String {
1212
let mut buffer = String::new();
13-
for t in tcx.all_traits() {
13+
for t in tcx.all_traits_including_private() {
1414
buffer.push_str(&tcx.def_path_str(t));
1515
buffer.push_str(", ");
1616
}
@@ -21,7 +21,7 @@ fn dump_traits(tcx: &TyCtxt) -> String {
2121
pub(crate) fn cache_traits(ctxt: &mut BevyCtxt<'_>, _args: &Args) -> bool {
2222
let tcx = &ctxt.tcx;
2323

24-
for trait_did in tcx.all_traits() {
24+
for trait_did in tcx.all_traits_including_private() {
2525
let def_path_str = tcx.def_path_str(trait_did);
2626
if DEF_PATHS_REFLECT.contains(&def_path_str.as_str()) {
2727
trace!("found Reflect trait def id: {trait_did:?}");

codegen/src/passes/find_methods_and_fields.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ pub(crate) fn find_methods_and_fields(ctxt: &mut BevyCtxt<'_>, _args: &Args) ->
3232
.variants()
3333
.iter()
3434
.flat_map(|variant| {
35-
if has_reflect_ignore_attr(ctxt.tcx.get_attrs_unchecked(variant.def_id)) {
35+
if has_reflect_ignore_attr(ctxt.tcx.get_all_attrs(variant.def_id)) {
3636
// TODO: is this the right approach? do we need to still include those variants? or do we just provide dummies
3737
// or can we just skip those ?
3838
info!(
@@ -159,7 +159,7 @@ pub(crate) fn find_methods_and_fields(ctxt: &mut BevyCtxt<'_>, _args: &Args) ->
159159

160160
let trait_did = ctxt
161161
.tcx
162-
.impl_trait_ref(*impl_did)
162+
.impl_opt_trait_ref(*impl_did)
163163
.map(|tr| tr.skip_binder().def_id);
164164
let trait_name = trait_did
165165
.map(|td| ctxt.tcx.item_name(td).to_ident_string())
@@ -353,7 +353,8 @@ fn process_fields<'tcx, 'f, I: Iterator<Item = &'f FieldDef>>(
353353
return (f.did, crate::ReflectionStrategy::Filtered);
354354
}
355355

356-
let field_ty = tcx.erase_regions(tcx.type_of(f.did).instantiate_identity());
356+
let field_ty =
357+
tcx.erase_and_anonymize_regions(tcx.type_of(f.did).instantiate_identity());
357358
if type_is_supported_as_non_proxy_arg(tcx, param_env, cached_traits, field_ty)
358359
&& type_is_supported_as_non_proxy_return_val(
359360
tcx,
@@ -367,7 +368,7 @@ fn process_fields<'tcx, 'f, I: Iterator<Item = &'f FieldDef>>(
367368
&& type_is_supported_as_proxy_return_val(tcx, reflect_types, meta_loader, field_ty)
368369
{
369370
(f.did, crate::ReflectionStrategy::Proxy)
370-
} else if !has_reflect_ignore_attr(tcx.get_attrs_unchecked(f.did)) {
371+
} else if !has_reflect_ignore_attr(tcx.get_all_attrs(f.did)) {
371372
(f.did, crate::ReflectionStrategy::Reflection)
372373
} else {
373374
(f.did, crate::ReflectionStrategy::Filtered)
@@ -487,7 +488,9 @@ fn type_is_supported_as_non_proxy_return_val<'tcx>(
487488
"Checkign type is supported as non proxy return val: '{ty:?}' with param_env: '{param_env:?}'"
488489
);
489490
if let TyKind::Ref(region, _, _) = ty.kind()
490-
&& region.get_name().is_none_or(|rn| rn.as_str() != "'static")
491+
&& region
492+
.get_name(tcx)
493+
.is_none_or(|rn| rn.as_str() != "'static")
491494
{
492495
return false;
493496
}

codegen/src/passes/find_trait_impls.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,7 @@ fn impl_matches<'tcx>(infcx: &InferCtxt<'tcx>, ty: Ty<'tcx>, impl_def_id: DefId)
146146
let param_env = typing_env.with_post_analysis_normalized(tcx).param_env;
147147
let impl_args = infcx.fresh_args_for_item(DUMMY_SP, impl_def_id);
148148

149-
let impl_trait_ref = tcx
150-
.impl_trait_ref(impl_def_id)
151-
.expect("Expected defid to be an impl for a trait")
152-
.instantiate(tcx, impl_args);
149+
let impl_trait_ref = tcx.impl_trait_ref(impl_def_id).instantiate(tcx, impl_args);
153150
let impl_trait_ref = ocx.normalize(&ObligationCause::dummy(), param_env, impl_trait_ref);
154151
let impl_trait_ref_ty = impl_trait_ref.self_ty();
155152
if ocx
@@ -164,7 +161,7 @@ fn impl_matches<'tcx>(infcx: &InferCtxt<'tcx>, ty: Ty<'tcx>, impl_def_id: DefId)
164161
Obligation::new(tcx, ObligationCause::dummy(), param_env, predicate)
165162
}));
166163

167-
ocx.select_where_possible().is_empty()
164+
ocx.try_evaluate_obligations().is_empty()
168165
};
169166

170167
infcx.probe(|_| impl_may_apply(impl_def_id))

codegen/src/passes/populate_template_data.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub(crate) fn populate_template_data(ctxt: &mut BevyCtxt<'_>, args: &Args) -> bo
5757
.variants()
5858
.iter()
5959
.map(|variant| Variant {
60-
docstrings: docstrings(ctxt.tcx.get_attrs_unchecked(variant.def_id)),
60+
docstrings: docstrings(ctxt.tcx.get_all_attrs(variant.def_id)),
6161
name: variant.name.to_ident_string().into(),
6262
fields: process_fields(ctxt, variant.fields.iter(), &ty_ctxt),
6363
})
@@ -71,7 +71,7 @@ pub(crate) fn populate_template_data(ctxt: &mut BevyCtxt<'_>, args: &Args) -> bo
7171
is_enum: variants.len() > 1,
7272
variants,
7373
is_tuple_struct,
74-
docstrings: docstrings(tcx.get_attrs_unchecked(reflect_ty_did)),
74+
docstrings: docstrings(tcx.get_all_attrs(reflect_ty_did)),
7575
impls_clone: trait_impls.contains_key(&clone_diagnostic),
7676
impls_debug: trait_impls.contains_key(&debug_diagnostic),
7777
impls_display: trait_impls.contains_key(&display_diagnostic),
@@ -110,7 +110,7 @@ pub(crate) fn process_fields<'f, I: Iterator<Item = &'f FieldDef>>(
110110
) -> Vec<Field> {
111111
fields
112112
.map(|field| Field {
113-
docstrings: docstrings(ctxt.tcx.get_attrs_unchecked(field.did)),
113+
docstrings: docstrings(ctxt.tcx.get_all_attrs(field.did)),
114114
ident: field.name.to_ident_string(),
115115
ty: ty_to_string(ctxt, ctxt.tcx.type_of(field.did).skip_binder(), false),
116116
reflection_strategy: *ty_ctxt
@@ -163,9 +163,9 @@ pub(crate) fn process_functions(ctxt: &BevyCtxt, fns: &[FunctionContext]) -> Vec
163163
args,
164164
output,
165165
has_self: fn_ctxt.has_self,
166-
docstrings: docstrings(ctxt.tcx.get_attrs_unchecked(fn_ctxt.def_id)),
166+
docstrings: docstrings(ctxt.tcx.get_all_attrs(fn_ctxt.def_id)),
167167
from_trait_path: fn_ctxt.trait_and_impl_did.map(|(_, impl_did)| {
168-
let trait_ref = ctxt.tcx.impl_trait_ref(impl_did).unwrap().skip_binder();
168+
let trait_ref = ctxt.tcx.impl_trait_ref(impl_did).skip_binder();
169169

170170
trait_ref_to_string(ctxt, trait_ref)
171171
}),
@@ -239,7 +239,7 @@ fn trait_ref_to_string<'tcx>(ctxt: &BevyCtxt<'tcx>, trait_ref: TraitRef<'tcx>) -
239239
// filter out non const | type generics and the compiler generated ones
240240
.filter(|(_, arg_def)| match arg_def.kind {
241241
GenericParamDefKind::Lifetime => false,
242-
GenericParamDefKind::Const { synthetic, .. } => !synthetic,
242+
GenericParamDefKind::Type { synthetic, .. } => !synthetic,
243243
_ => true,
244244
})
245245
.map(|(arg, arg_def)| {

0 commit comments

Comments
 (0)