Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
845da88
refactor: remove Ord bound from BinaryHeap::new etc
aatifsyed Nov 28, 2025
fcf2426
fix: BinaryHeap<T: Ord>::peek_mut
aatifsyed Nov 28, 2025
9156b54
Update to_uppercase docs to avoid ß->SS example
guilhermeljs Jan 9, 2026
c10f0dd
Add comment to clarify that 'ffi' is a single Unicode code point mappin…
guilhermeljs Jan 10, 2026
6b5a1a5
Switch from ffi to ſt ligature for better visual clarity
guilhermeljs Jan 12, 2026
c98b90e
std: Change UEFI env vars to volatile storage
nicholasbishop Jan 12, 2026
cafe917
On unmet trait bound, mention if trait is unstable
estebank Jan 12, 2026
89713fc
Mention `Range` when `Step` trait bound is unmet
estebank Jan 12, 2026
45edce2
Update rustc_on_unimplemented message for `Step`
estebank Jan 13, 2026
37afa31
Remove all usage of FeedConstTy::No
mu001999 Jan 10, 2026
6d837ae
Remove FeedConstTy
mu001999 Jan 11, 2026
bf423e7
Bless tests
mu001999 Jan 11, 2026
d95613a
Fix review comments
mu001999 Jan 12, 2026
4708985
Update run-make test output
estebank Jan 13, 2026
9b7f612
Update main label
estebank Jan 13, 2026
e259373
std: move `errno` and related functions into `sys::io`
joboet Jan 6, 2026
0f25fca
update import in UI test
joboet Jan 6, 2026
d1c2e5c
Add test for issue 151048
mu001999 Jan 13, 2026
8afa95d
Avoid should-fail in two ui tests
bjorn3 Jan 13, 2026
15112ee
Avoid should-fail in a codegen-llvm test
bjorn3 Jan 13, 2026
27e09ce
Update ui-fulldeps --stage 2 tests
estebank Jan 13, 2026
814647f
Change some `matches!(.., .. if ..)` with let-chains
estebank Dec 26, 2025
c4820e6
resolve: Refactor away the side table `decl_parent_modules`
petrochenkov Jan 9, 2026
5435e81
also handle ENOTTY ioctl errors when checking pidfd -> pid support
the8472 Jan 13, 2026
1fe705c
Mention the type in the label, to avoid confusion at the cost of redu…
estebank Jan 13, 2026
15d8e9e
Recognize potential `impl<const N: usize>` to `impl<N>` mistake
estebank Jan 13, 2026
3aa3178
Remove `Deref`/`DerefMut` impl for `Providers`.
nnethercote Jan 13, 2026
e7299e8
Rollup merge of #149408 - aatifsyed/binary-heap-no-ord, r=tgross35,dt…
JonathanBrouwer Jan 14, 2026
84e4804
Rollup merge of #150406 - matches-let-chain, r=Kivooeo,oli-obk,BoxyUw…
JonathanBrouwer Jan 14, 2026
c35c6aa
Rollup merge of #150723 - move_pal_error, r=@tgross35
JonathanBrouwer Jan 14, 2026
634b594
Rollup merge of #150877 - declmod, r=nnethercote
JonathanBrouwer Jan 14, 2026
f3ca16b
Rollup merge of #150902 - docs-150888-to_uppercase, r=Noratrieb,worki…
JonathanBrouwer Jan 14, 2026
09a00e9
Rollup merge of #150962 - rm/feed_const_ty, r=BoxyUwU
JonathanBrouwer Jan 14, 2026
51f17dd
Rollup merge of #151034 - bishop-fix-nv, r=joboet
JonathanBrouwer Jan 14, 2026
d4c6cf4
Rollup merge of #151036 - issue-151026, r=mati865
JonathanBrouwer Jan 14, 2026
b4931b9
Rollup merge of #151067 - ui_test_no_should_fail, r=lqd
JonathanBrouwer Jan 14, 2026
2c56a5d
Rollup merge of #151072 - fix-pidfd-ioctl, r=jhpratt
JonathanBrouwer Jan 14, 2026
c45ca8a
Rollup merge of #151077 - issue-84327, r=fmease
JonathanBrouwer Jan 14, 2026
09a1243
Rollup merge of #151096 - rm-providers-deref, r=oli-obk
JonathanBrouwer Jan 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion compiler/rustc_codegen_gcc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,8 @@ impl CodegenBackend for GccCodegenBackend {
}

fn provide(&self, providers: &mut Providers) {
providers.global_backend_features = |tcx, ()| gcc_util::global_gcc_features(tcx.sess)
providers.queries.global_backend_features =
|tcx, ()| gcc_util::global_gcc_features(tcx.sess)
}

fn codegen_crate(&self, tcx: TyCtxt<'_>) -> Box<dyn Any> {
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_codegen_llvm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ impl CodegenBackend for LlvmCodegenBackend {
}

fn provide(&self, providers: &mut Providers) {
providers.global_backend_features =
providers.queries.global_backend_features =
|tcx, ()| llvm_util::global_llvm_features(tcx.sess, false)
}

Expand Down
18 changes: 9 additions & 9 deletions compiler/rustc_codegen_ssa/src/back/symbol_export.rs
Original file line number Diff line number Diff line change
Expand Up @@ -474,15 +474,15 @@ fn is_unreachable_local_definition_provider(tcx: TyCtxt<'_>, def_id: LocalDefId)
}

pub(crate) fn provide(providers: &mut Providers) {
providers.reachable_non_generics = reachable_non_generics_provider;
providers.is_reachable_non_generic = is_reachable_non_generic_provider_local;
providers.exported_non_generic_symbols = exported_non_generic_symbols_provider_local;
providers.exported_generic_symbols = exported_generic_symbols_provider_local;
providers.upstream_monomorphizations = upstream_monomorphizations_provider;
providers.is_unreachable_local_definition = is_unreachable_local_definition_provider;
providers.upstream_drop_glue_for = upstream_drop_glue_for_provider;
providers.upstream_async_drop_glue_for = upstream_async_drop_glue_for_provider;
providers.wasm_import_module_map = wasm_import_module_map;
providers.queries.reachable_non_generics = reachable_non_generics_provider;
providers.queries.is_reachable_non_generic = is_reachable_non_generic_provider_local;
providers.queries.exported_non_generic_symbols = exported_non_generic_symbols_provider_local;
providers.queries.exported_generic_symbols = exported_generic_symbols_provider_local;
providers.queries.upstream_monomorphizations = upstream_monomorphizations_provider;
providers.queries.is_unreachable_local_definition = is_unreachable_local_definition_provider;
providers.queries.upstream_drop_glue_for = upstream_drop_glue_for_provider;
providers.queries.upstream_async_drop_glue_for = upstream_async_drop_glue_for_provider;
providers.queries.wasm_import_module_map = wasm_import_module_map;
providers.extern_queries.is_reachable_non_generic = is_reachable_non_generic_provider_extern;
providers.extern_queries.upstream_monomorphizations_for =
upstream_monomorphizations_for_provider;
Expand Down
6 changes: 3 additions & 3 deletions compiler/rustc_codegen_ssa/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -266,9 +266,9 @@ pub enum CodegenErrors {

pub fn provide(providers: &mut Providers) {
crate::back::symbol_export::provide(providers);
crate::base::provide(providers);
crate::target_features::provide(providers);
crate::codegen_attrs::provide(providers);
crate::base::provide(&mut providers.queries);
crate::target_features::provide(&mut providers.queries);
crate::codegen_attrs::provide(&mut providers.queries);
providers.queries.global_backend_features = |_tcx: TyCtxt<'_>, ()| vec![];
}

Expand Down
13 changes: 7 additions & 6 deletions compiler/rustc_const_eval/src/check_consts/check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -833,12 +833,13 @@ impl<'tcx> Visitor<'tcx> for Checker<'_, 'tcx> {

// const-eval of `panic_display` assumes the argument is `&&str`
if tcx.is_lang_item(callee, LangItem::PanicDisplay) {
match args[0].node.ty(&self.ccx.body.local_decls, tcx).kind() {
ty::Ref(_, ty, _) if matches!(ty.kind(), ty::Ref(_, ty, _) if ty.is_str()) =>
{}
_ => {
self.check_op(ops::PanicNonStr);
}
if let ty::Ref(_, ty, _) =
args[0].node.ty(&self.ccx.body.local_decls, tcx).kind()
&& let ty::Ref(_, ty, _) = ty.kind()
&& ty.is_str()
{
} else {
self.check_op(ops::PanicNonStr);
}
// Allow this call, skip all the checks below.
return;
Expand Down
16 changes: 8 additions & 8 deletions compiler/rustc_const_eval/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,20 @@ pub use self::errors::ReportErrorExt;
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }

pub fn provide(providers: &mut Providers) {
const_eval::provide(providers);
providers.tag_for_variant = const_eval::tag_for_variant_provider;
providers.eval_to_const_value_raw = const_eval::eval_to_const_value_raw_provider;
providers.eval_to_allocation_raw = const_eval::eval_to_allocation_raw_provider;
providers.eval_static_initializer = const_eval::eval_static_initializer_provider;
const_eval::provide(&mut providers.queries);
providers.queries.tag_for_variant = const_eval::tag_for_variant_provider;
providers.queries.eval_to_const_value_raw = const_eval::eval_to_const_value_raw_provider;
providers.queries.eval_to_allocation_raw = const_eval::eval_to_allocation_raw_provider;
providers.queries.eval_static_initializer = const_eval::eval_static_initializer_provider;
providers.hooks.const_caller_location = util::caller_location::const_caller_location_provider;
providers.eval_to_valtree = |tcx, ty::PseudoCanonicalInput { typing_env, value }| {
providers.queries.eval_to_valtree = |tcx, ty::PseudoCanonicalInput { typing_env, value }| {
const_eval::eval_to_valtree(tcx, typing_env, value)
};
providers.hooks.try_destructure_mir_constant_for_user_output =
const_eval::try_destructure_mir_constant_for_user_output;
providers.valtree_to_const_val =
providers.queries.valtree_to_const_val =
|tcx, cv| const_eval::valtree_to_const_value(tcx, ty::TypingEnv::fully_monomorphized(), cv);
providers.check_validity_requirement = |tcx, (init_kind, param_env_and_ty)| {
providers.queries.check_validity_requirement = |tcx, (init_kind, param_env_and_ty)| {
util::check_validity_requirement(tcx, init_kind, param_env_and_ty)
};
providers.hooks.validate_scalar_in_layout =
Expand Down
8 changes: 3 additions & 5 deletions compiler/rustc_hir_analysis/src/collect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,7 @@ use rustc_trait_selection::traits::{
use tracing::{debug, instrument};

use crate::errors;
use crate::hir_ty_lowering::{
FeedConstTy, HirTyLowerer, InherentAssocCandidate, RegionInferReason,
};
use crate::hir_ty_lowering::{HirTyLowerer, InherentAssocCandidate, RegionInferReason};

pub(crate) mod dump;
mod generics_of;
Expand Down Expand Up @@ -1499,7 +1497,7 @@ fn const_param_default<'tcx>(

let ct = icx
.lowerer()
.lower_const_arg(default_ct, FeedConstTy::with_type_of(tcx, def_id, identity_args));
.lower_const_arg(default_ct, tcx.type_of(def_id).instantiate(tcx, identity_args));
ty::EarlyBinder::bind(ct)
}

Expand Down Expand Up @@ -1557,7 +1555,7 @@ fn const_of_item<'tcx>(
let identity_args = ty::GenericArgs::identity_for_item(tcx, def_id);
let ct = icx
.lowerer()
.lower_const_arg(ct_arg, FeedConstTy::with_type_of(tcx, def_id.to_def_id(), identity_args));
.lower_const_arg(ct_arg, tcx.type_of(def_id.to_def_id()).instantiate(tcx, identity_args));
if let Err(e) = icx.check_tainted_by_errors()
&& !ct.references_error()
{
Expand Down
35 changes: 17 additions & 18 deletions compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use tracing::{debug, instrument};

use crate::errors;
use crate::hir_ty_lowering::{
AssocItemQSelf, FeedConstTy, GenericsArgsErrExtend, HirTyLowerer, ImpliedBoundsContext,
AssocItemQSelf, GenericsArgsErrExtend, HirTyLowerer, ImpliedBoundsContext,
OverlappingAsssocItemConstraints, PredicateFilter, RegionInferReason,
};

Expand Down Expand Up @@ -510,7 +510,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
// Create the generic arguments for the associated type or constant by joining the
// parent arguments (the arguments of the trait) and the own arguments (the ones of
// the associated item itself) and construct an alias type using them.
let alias_term = candidate.map_bound(|trait_ref| {
candidate.map_bound(|trait_ref| {
let item_segment = hir::PathSegment {
ident: constraint.ident,
hir_id: constraint.hir_id,
Expand All @@ -528,20 +528,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
debug!(?alias_args);

ty::AliasTerm::new_from_args(tcx, assoc_item.def_id, alias_args)
});

// Provide the resolved type of the associated constant to `type_of(AnonConst)`.
if let Some(const_arg) = constraint.ct()
&& let hir::ConstArgKind::Anon(anon_const) = const_arg.kind
{
let ty = alias_term
.map_bound(|alias| tcx.type_of(alias.def_id).instantiate(tcx, alias.args));
let ty =
check_assoc_const_binding_type(self, constraint.ident, ty, constraint.hir_id);
tcx.feed_anon_const_type(anon_const.def_id, ty::EarlyBinder::bind(ty));
}

alias_term
})
};

match constraint.kind {
Expand All @@ -555,7 +542,19 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
hir::AssocItemConstraintKind::Equality { term } => {
let term = match term {
hir::Term::Ty(ty) => self.lower_ty(ty).into(),
hir::Term::Const(ct) => self.lower_const_arg(ct, FeedConstTy::No).into(),
hir::Term::Const(ct) => {
let ty = projection_term.map_bound(|alias| {
tcx.type_of(alias.def_id).instantiate(tcx, alias.args)
});
let ty = check_assoc_const_binding_type(
self,
constraint.ident,
ty,
constraint.hir_id,
);

self.lower_const_arg(ct, ty).into()
}
};

// Find any late-bound regions declared in `ty` that are not
Expand Down Expand Up @@ -871,7 +870,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
/// probably gate this behind another feature flag.
///
/// [^1]: <https://github.com/rust-lang/project-const-generics/issues/28>.
fn check_assoc_const_binding_type<'tcx>(
pub(crate) fn check_assoc_const_binding_type<'tcx>(
cx: &dyn HirTyLowerer<'tcx>,
assoc_const: Ident,
ty: ty::Binder<'tcx, Ty<'tcx>>,
Expand Down
Loading
Loading