Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
521cfd7
Add `remove hidden_glob_reexports item breaks downstream` test
mejrs Aug 5, 2026
849a980
Enable all EII tests on Windows MSVC
AsakuraMizu Aug 7, 2026
26932d6
remove unwrap from write_mir_fn_graphviz
malezjaa Aug 10, 2026
083e8a8
fix arm homogeneous aggregate ABI
folkertdev Aug 13, 2026
c5749cb
Normalize EII dylib test coverage
AsakuraMizu Aug 8, 2026
10ff99b
[PAC] Introduce function pointer type encoder and hashing function
jchlanda Jul 10, 2026
798151e
[PAC] Add unit tests for sip hash
jchlanda Jul 20, 2026
1b80b2d
[PAC] Provide information on where the SipHash tests were derived from
jchlanda Aug 5, 2026
415f5ad
[PAC] Update license-metadata.json
jchlanda Aug 6, 2026
c768371
Reserve capacity for 3% anon nodes
Zoxc Aug 17, 2026
f7fcb54
Download auto jobs in citool in parallel
Kobzol Aug 17, 2026
b376bc3
Tighten the language used for documenting `TargetOptions::llvm_abiname`
jchlanda Aug 18, 2026
ce9a8ca
Do not panic when the result receiver is dropped prematurely
Kobzol Aug 19, 2026
6d632a7
Update the `rustc-perf` submodule
Kobzol Aug 19, 2026
7188874
rename `ProjectionPredicate` to `ProjectionClause`
ada4a Aug 18, 2026
7b5c709
rename `TraitPredicate` to `TraitClause`
ada4a Aug 12, 2026
2f5e253
Remove a bunch of unnecessary explicit lifetimes
oli-obk Aug 18, 2026
1854837
rustdoc: Always document `#[repr(transparent)]` if `#[rustc_pub_trans…
jamie-osec Jan 10, 2026
818b980
Rollup merge of #159071 - jchlanda:jakub/pac_ty_disc_PR_1, r=davidtwco
JonathanBrouwer Aug 19, 2026
7d03b80
Rollup merge of #161344 - Kobzol:update-rustc-perf, r=lqd
JonathanBrouwer Aug 19, 2026
ea1114d
Rollup merge of #150931 - clubby789:doc-rustc-pub-transparent, r=fmease
JonathanBrouwer Aug 19, 2026
520089b
Rollup merge of #160582 - mejrs:hidden_glob_reexports-test, r=davidtwco
JonathanBrouwer Aug 19, 2026
7ba757e
Rollup merge of #160876 - malezjaa:remove-unrwap-graphviz, r=davidtwco
JonathanBrouwer Aug 19, 2026
8300f2d
Rollup merge of #160927 - AsakuraMizu:eii-tests, r=davidtwco
JonathanBrouwer Aug 19, 2026
b2d81f9
Rollup merge of #161070 - folkertdev:armv7-align-abi, r=davidtwco
JonathanBrouwer Aug 19, 2026
6d622ba
Rollup merge of #161236 - Kobzol:citool-parallel, r=jieyouxu
JonathanBrouwer Aug 19, 2026
28511a5
Rollup merge of #161254 - Zoxc:anon-node-reserve, r=davidtwco
JonathanBrouwer Aug 19, 2026
cd90708
Rollup merge of #161283 - jchlanda:jakub/MCTargetOptions, r=JohnTitor
JonathanBrouwer Aug 19, 2026
7b9a01a
Rollup merge of #161291 - ada4a:push-xqqtloltnvwu, r=oli-obk
JonathanBrouwer Aug 19, 2026
45a094d
Rollup merge of #161299 - oli-obk:push-srmnrmyyzylq, r=mejrs
JonathanBrouwer Aug 19, 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
9 changes: 9 additions & 0 deletions REUSE.toml
Original file line number Diff line number Diff line change
Expand Up @@ -208,3 +208,12 @@ SPDX-FileCopyrightText = [
"Copyright (C) 2000-2024 Free Software Foundation, Inc.",
]
SPDX-License-Identifier = "GCC-exception-3.1"

[[annotations]]
path = "compiler/rustc_middle/src/ptrauth/llvm_siphash/tests.rs"
precedence = "override"
SPDX-FileCopyrightText = [
"2003-2019 University of Illinois at Urbana-Champaign.",
"The Rust Project Developers (see https://thanks.rust-lang.org)",
]
SPDX-License-Identifier = "Apache-2.0 WITH LLVM-exception AND (Apache-2.0 OR MIT)"
4 changes: 2 additions & 2 deletions compiler/rustc_abi/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2171,8 +2171,8 @@ pub struct LayoutData<FieldIdx: Idx, VariantIdx: Idx> {
pub max_repr_align: Option<Align>,

/// The alignment the type would have, ignoring any `repr(align)` but including `repr(packed)`.
/// Only used on aarch64-linux, where the argument passing ABI ignores the requested alignment
/// in some cases.
/// Only used on aarch64-linux and arm, where the argument passing ABI ignores the requested
/// alignment in some cases.
pub unadjusted_abi_align: Align,

/// The randomization seed based on this type's own repr and its fields.
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -691,7 +691,7 @@ impl<'diag, 'tcx> MirBorrowckCtxt<'_, 'diag, 'tcx> {
if !clauses.instantiate_identity(tcx).clauses.iter().any(|clause| {
clause.as_trait_clause().is_some_and(|tc| {
tc.self_ty().skip_binder().is_param(param.index)
&& tc.polarity() == ty::PredicatePolarity::Positive
&& tc.polarity() == ty::ClausePolarity::Positive
&& supertrait_def_ids(tcx, tc.def_id())
.flat_map(|trait_did| tcx.associated_items(trait_did).in_definition_order())
.any(|item| item.is_method())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1228,7 +1228,7 @@ impl<'tcx> MirBorrowckCtxt<'_, '_, 'tcx> {
tcx.clauses_of(callee_def_id).instantiate(tcx, generic_args).clauses.iter().any(
|clause| {
clause.as_trait_clause().is_some_and(|trait_pred| {
trait_pred.polarity() == ty::PredicatePolarity::Positive
trait_pred.polarity() == ty::ClausePolarity::Positive
&& tcx.fn_trait_kind_from_def_id(trait_pred.def_id())
== Some(ty::ClosureKind::Fn)
&& trait_pred.self_ty().skip_binder().peel_refs()
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_borrowck/src/type_check/canonical.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,9 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
category: ConstraintCategory<'tcx>,
) {
self.prove_clause(
ty::ClauseKind::Trait(ty::TraitPredicate {
ty::ClauseKind::Trait(ty::TraitClause {
trait_ref,
polarity: ty::PredicatePolarity::Positive,
polarity: ty::ClausePolarity::Positive,
}),
locations,
category,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ impl<O: ForestObligation> ObligationForest<O> {
/// A few post-processing that you might want to do make the forest easier to visualize:
///
/// * `sed 's,std::[a-z]*::,,g'` — Deletes the `std::<package>::` prefix of paths.
/// * `sed 's,"Binder(TraitPredicate(<\(.*\)>)) (\([^)]*\))","\1 (\2)",'` — Transforms
/// `Binder(TraitPredicate(<predicate>))` into just `<predicate>`.
/// * `sed 's,"Binder(TraitClause(<\(.*\)>)) (\([^)]*\))","\1 (\2)",'` — Transforms
/// `Binder(TraitClause(<predicate>))` into just `<predicate>`.
#[allow(dead_code)]
pub fn dump_graphviz<P: AsRef<Path>>(&self, dir: P, description: &str) {
static COUNTER: AtomicUsize = AtomicUsize::new(0);
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_hir_analysis/src/check/compare_impl_item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2726,7 +2726,7 @@ fn param_env_with_gat_bounds<'tcx>(
}
_ => clauses.push(
ty::Binder::bind_with_vars(
ty::ProjectionPredicate {
ty::ProjectionClause {
projection_term: ty::AliasTerm::new_from_def_id(
tcx,
trait_ty.def_id,
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_hir_analysis/src/check/wfcheck.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1323,7 +1323,7 @@ fn check_impl<'tcx>(
trait_ref,
);
let trait_pred =
ty::TraitPredicate { trait_ref, polarity: ty::PredicatePolarity::Positive };
ty::TraitClause { trait_ref, polarity: ty::ClausePolarity::Positive };
let mut obligations = traits::wf::trait_obligations(
wfcx.infcx,
wfcx.param_env,
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_hir_analysis/src/coherence/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -924,9 +924,9 @@ fn infringing_fields_error<'tcx>(
.or_default()
.push(error.obligation.cause.span);
}
if let ty::PredicateKind::Clause(ty::ClauseKind::Trait(ty::TraitPredicate {
if let ty::PredicateKind::Clause(ty::ClauseKind::Trait(ty::TraitClause {
trait_ref,
polarity: ty::PredicatePolarity::Positive,
polarity: ty::ClausePolarity::Positive,
..
})) = error_predicate.kind().skip_binder()
{
Expand Down
6 changes: 3 additions & 3 deletions compiler/rustc_hir_analysis/src/collect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ impl<'tcx> ItemCtxt<'tcx> {
ItemCtxt::new_internal(tcx, item_def_id, true)
}

pub(crate) fn lower_ty(&self, hir_ty: &hir::Ty<'tcx>) -> Ty<'tcx> {
pub(crate) fn lower_ty(&self, hir_ty: &hir::Ty<'_>) -> Ty<'tcx> {
self.lowerer().lower_ty(hir_ty)
}

Expand Down Expand Up @@ -451,7 +451,7 @@ impl<'tcx> HirTyLowerer<'tcx> for ItemCtxt<'tcx> {
&self,
span: Span,
item_def_id: DefId,
item_segment: &rustc_hir::PathSegment<'tcx>,
item_segment: &rustc_hir::PathSegment<'_>,
poly_trait_ref: ty::PolyTraitRef<'tcx>,
) -> Result<(DefId, ty::GenericArgsRef<'tcx>), ErrorGuaranteed> {
if let Some(trait_ref) = poly_trait_ref.no_bound_vars() {
Expand Down Expand Up @@ -549,7 +549,7 @@ impl<'tcx> HirTyLowerer<'tcx> for ItemCtxt<'tcx> {

fn lower_fn_sig(
&self,
decl: &hir::FnDecl<'tcx>,
decl: &hir::FnDecl<'_>,
_generics: Option<&hir::Generics<'_>>,
hir_id: rustc_hir::HirId,
_hir_ty: Option<&hir::Ty<'_>>,
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_hir_analysis/src/collect/clauses_of.rs
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,7 @@ pub(super) fn implied_clauses_with_filter<'tcx>(
for &(clause, span) in implied_bounds {
debug!("superbound: {:?}", clause);
if let ty::ClauseKind::Trait(bound) = clause.kind().skip_binder()
&& bound.polarity == ty::PredicatePolarity::Positive
&& bound.polarity == ty::ClausePolarity::Positive
{
tcx.at(span).explicit_super_clauses_of(bound.def_id());
}
Expand All @@ -730,7 +730,7 @@ pub(super) fn implied_clauses_with_filter<'tcx>(
for &(clause, span) in implied_bounds {
debug!("superbound: {:?}", clause);
if let ty::ClauseKind::Trait(bound) = clause.kind().skip_binder()
&& bound.polarity == ty::PredicatePolarity::Positive
&& bound.polarity == ty::ClausePolarity::Positive
{
tcx.at(span).explicit_implied_clauses_of(bound.def_id());
}
Expand Down
24 changes: 11 additions & 13 deletions compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ fn collect_bounds<'a, 'tcx>(

fn collect_sizedness_bounds<'tcx>(
tcx: TyCtxt<'tcx>,
hir_bounds: &'tcx [hir::GenericBound<'tcx>],
hir_bounds: &[hir::GenericBound<'_>],
context: ImpliedBoundsContext<'tcx>,
span: Span,
) -> CollectedSizednessBounds {
Expand Down Expand Up @@ -150,7 +150,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
&self,
bounds: &mut Vec<(ty::Clause<'tcx>, Span)>,
self_ty: Ty<'tcx>,
hir_bounds: &'tcx [hir::GenericBound<'tcx>],
hir_bounds: &[hir::GenericBound<'_>],
context: ImpliedBoundsContext<'tcx>,
span: Span,
) {
Expand Down Expand Up @@ -212,7 +212,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
&self,
bounds: &mut Vec<(ty::Clause<'tcx>, Span)>,
self_ty: Ty<'tcx>,
hir_bounds: &[hir::GenericBound<'tcx>],
hir_bounds: &[hir::GenericBound<'_>],
context: ImpliedBoundsContext<'tcx>,
span: Span,
) {
Expand All @@ -229,7 +229,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
trait_: LangItem,
bounds: &mut Vec<(ty::Clause<'tcx>, Span)>,
self_ty: Ty<'tcx>,
hir_bounds: &[hir::GenericBound<'tcx>],
hir_bounds: &[hir::GenericBound<'_>],
context: ImpliedBoundsContext<'tcx>,
span: Span,
) {
Expand All @@ -251,10 +251,10 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
}

/// Returns `true` if default trait bound should be added.
fn should_add_default_traits<'a>(
fn should_add_default_traits(
&self,
trait_def_id: DefId,
hir_bounds: &'a [hir::GenericBound<'tcx>],
hir_bounds: &[hir::GenericBound<'_>],
context: ImpliedBoundsContext<'tcx>,
) -> bool {
let collected = collect_bounds(hir_bounds, context, trait_def_id);
Expand Down Expand Up @@ -308,17 +308,15 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
/// There is an implied binder around `param_ty` and `hir_bounds`.
/// See `lower_poly_trait_ref` for more details.
#[instrument(level = "debug", skip(self, hir_bounds, bounds))]
pub(crate) fn lower_bounds<'hir, I: IntoIterator<Item = &'hir hir::GenericBound<'tcx>>>(
pub(crate) fn lower_bounds<'a, I: IntoIterator<Item = &'a hir::GenericBound<'a>>>(
&self,
param_ty: Ty<'tcx>,
hir_bounds: I,
bounds: &mut Vec<(ty::Clause<'tcx>, Span)>,
bound_vars: &'tcx ty::List<ty::BoundVariableKind<'tcx>>,
predicate_filter: PredicateFilter,
overlapping_assoc_constraints: OverlappingAsssocItemConstraints,
) where
'tcx: 'hir,
{
) {
for hir_bound in hir_bounds {
// In order to avoid cycles, when we're lowering `SelfTraitThatDefines`,
// we skip over any traits that don't define the given associated type.
Expand Down Expand Up @@ -379,7 +377,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
&self,
hir_ref_id: hir::HirId,
trait_ref: ty::PolyTraitRef<'tcx>,
constraint: &hir::AssocItemConstraint<'tcx>,
constraint: &hir::AssocItemConstraint<'_>,
bounds: &mut Vec<(ty::Clause<'tcx>, Span)>,
duplicates: Option<&mut FxIndexMap<DefId, Span>>,
path_span: Span,
Expand Down Expand Up @@ -547,7 +545,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
| PredicateFilter::SelfOnly
| PredicateFilter::SelfAndAssociatedTypeBounds => {
let bound = projection_term.map_bound(|projection_term| {
ty::ClauseKind::Projection(ty::ProjectionPredicate {
ty::ClauseKind::Projection(ty::ProjectionClause {
projection_term,
term,
})
Expand Down Expand Up @@ -616,7 +614,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {

/// Lower a type, possibly specially handling the type if it's a return type notation
/// which we otherwise deny in other positions.
pub fn lower_ty_maybe_return_type_notation(&self, hir_ty: &hir::Ty<'tcx>) -> Ty<'tcx> {
pub fn lower_ty_maybe_return_type_notation(&self, hir_ty: &hir::Ty<'_>) -> Ty<'tcx> {
let hir::TyKind::Path(qpath) = hir_ty.kind else {
return self.lower_ty(hir_ty);
};
Expand Down
14 changes: 7 additions & 7 deletions compiler/rustc_hir_analysis/src/hir_ty_lowering/dyn_trait.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
&self,
span: Span,
hir_id: hir::HirId,
hir_bounds: &[hir::PolyTraitRef<'tcx>],
hir_bounds: &[hir::PolyTraitRef<'_>],
lifetime: &hir::Lifetime,
syntax: TraitObjectSyntax,
) -> Ty<'tcx> {
Expand Down Expand Up @@ -207,7 +207,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {

if let Some((principal_trait, ref spans)) = principal_trait {
let principal_trait = principal_trait.map_bound(|trait_pred| {
assert_eq!(trait_pred.polarity, ty::PredicatePolarity::Positive);
assert_eq!(trait_pred.polarity, ty::ClausePolarity::Positive);
trait_pred.trait_ref
});

Expand Down Expand Up @@ -350,7 +350,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
let principal_trait_ref = principal_trait.map(|(trait_pred, spans)| {
trait_pred.map_bound(|trait_pred| {
let trait_ref = trait_pred.trait_ref;
assert_eq!(trait_pred.polarity, ty::PredicatePolarity::Positive);
assert_eq!(trait_pred.polarity, ty::ClausePolarity::Positive);
assert_eq!(trait_ref.self_ty(), dummy_self);

let span = *spans.first().unwrap();
Expand Down Expand Up @@ -423,7 +423,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
let mut auto_trait_predicates: Vec<_> = auto_traits
.into_iter()
.map(|(trait_pred, _)| {
assert_eq!(trait_pred.polarity(), ty::PredicatePolarity::Positive);
assert_eq!(trait_pred.polarity(), ty::ClausePolarity::Positive);
assert_eq!(trait_pred.self_ty().skip_binder(), dummy_self);

ty::Binder::dummy(ty::ExistentialPredicate::AutoTrait(trait_pred.def_id()))
Expand Down Expand Up @@ -476,7 +476,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
/// `elaborated-predicates-unconstrained-late-bound.rs` for a test.
fn check_elaborated_projection_mentions_input_lifetimes(
&self,
pred: ty::PolyProjectionPredicate<'tcx>,
pred: ty::PolyProjectionClause<'tcx>,
span: Span,
supertrait_span: Span,
) {
Expand Down Expand Up @@ -569,7 +569,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
&self,
span: Span,
hir_id: hir::HirId,
hir_bounds: &[hir::PolyTraitRef<'tcx>],
hir_bounds: &[hir::PolyTraitRef<'_>],
) -> Option<ErrorGuaranteed> {
struct TraitObjectWithoutDyn<'a, 'tcx> {
span: Span,
Expand Down Expand Up @@ -871,7 +871,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
&self,
span: Span,
hir_id: hir::HirId,
hir_bounds: &[hir::PolyTraitRef<'tcx>],
hir_bounds: &[hir::PolyTraitRef<'_>],
diag: &mut Diag<'_>,
) -> bool {
let tcx = self.tcx();
Expand Down
10 changes: 5 additions & 5 deletions compiler/rustc_hir_analysis/src/hir_ty_lowering/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
assoc_tag: ty::AssocTag,
assoc_ident: Ident,
span: Span,
constraint: Option<&hir::AssocItemConstraint<'tcx>>,
constraint: Option<&hir::AssocItemConstraint<'_>>,
) -> ErrorGuaranteed
where
I: Iterator<Item = ty::PolyTraitRef<'tcx>>,
Expand Down Expand Up @@ -349,7 +349,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
assoc_tag: ty::AssocTag,
ident: Ident,
span: Span,
constraint: Option<&hir::AssocItemConstraint<'tcx>>,
constraint: Option<&hir::AssocItemConstraint<'_>>,
) -> ErrorGuaranteed {
let tcx = self.tcx();

Expand Down Expand Up @@ -415,7 +415,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
assoc_tag: ty::AssocTag,
assoc_ident: Ident,
span: Span,
constraint: Option<&hir::AssocItemConstraint<'tcx>>,
constraint: Option<&hir::AssocItemConstraint<'_>>,
) -> ErrorGuaranteed {
let tcx = self.tcx();

Expand Down Expand Up @@ -544,7 +544,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
&self,
trait_def_id: DefId,
span: Span,
item_segment: &hir::PathSegment<'tcx>,
item_segment: &hir::PathSegment<'_>,
assoc_tag: ty::AssocTag,
) -> ErrorGuaranteed {
let tcx = self.tcx();
Expand Down Expand Up @@ -1485,7 +1485,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {

pub fn report_trait_object_addition_traits(
&self,
regular_traits: &Vec<(ty::PolyTraitPredicate<'tcx>, SmallVec<[Span; 1]>)>,
regular_traits: &Vec<(ty::PolyTraitClause<'tcx>, SmallVec<[Span; 1]>)>,
) -> ErrorGuaranteed {
// we use the last span to point at the traits themselves,
// and all other preceding spans are trait alias expansions.
Expand Down
Loading
Loading