Skip to content

Commit 0124066

Browse files
committed
Auto merge of #133783 - matthiaskrgr:rollup-gl1ixcy, r=matthiaskrgr
Rollup of 8 pull requests Successful merges: - #133089 (Stabilize noop_waker) - #133522 (Don't suggest restricting bound with unstable traits on stable and mention it's unstable on nightly) - #133545 (Lint against Symbol::intern on a string literal) - #133558 (Structurally resolve in `probe_adt`) - #133753 (Reduce false positives on some common cases from if-let-rescope lint) - #133762 (stabilize const_{size,align}_of_val) - #133777 (document -Zrandomize-layout in the unstable book) - #133779 (Use correct `hir_id` for array const arg infers) r? `@ghost` `@rustbot` modify labels: rollup
2 parents 41cbe3e + 0b5f3f1 commit 0124066

File tree

244 files changed

+807
-618
lines changed

Some content is hidden

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

244 files changed

+807
-618
lines changed

compiler/rustc_ast_lowering/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2011,7 +2011,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
20112011
ExprKind::Underscore => {
20122012
if self.tcx.features().generic_arg_infer() {
20132013
let ct_kind = hir::ConstArgKind::Infer(self.lower_span(c.value.span));
2014-
self.arena.alloc(hir::ConstArg { hir_id: self.next_id(), kind: ct_kind })
2014+
self.arena
2015+
.alloc(hir::ConstArg { hir_id: self.lower_node_id(c.id), kind: ct_kind })
20152016
} else {
20162017
feature_err(
20172018
&self.tcx.sess,

compiler/rustc_ast_passes/src/feature_gate.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ use rustc_ast::{NodeId, PatKind, attr, token};
44
use rustc_feature::{AttributeGate, BUILTIN_ATTRIBUTE_MAP, BuiltinAttribute, Features, GateIssue};
55
use rustc_session::Session;
66
use rustc_session::parse::{feature_err, feature_err_issue, feature_warn};
7+
use rustc_span::Span;
78
use rustc_span::source_map::Spanned;
8-
use rustc_span::symbol::sym;
9-
use rustc_span::{Span, Symbol};
9+
use rustc_span::symbol::{Symbol, sym};
1010
use rustc_target::spec::abi;
1111
use thin_vec::ThinVec;
1212

@@ -690,6 +690,7 @@ fn check_new_solver_banned_features(sess: &Session, features: &Features) {
690690
.find(|feat| feat.gate_name == sym::generic_const_exprs)
691691
.map(|feat| feat.attr_sp)
692692
{
693+
#[cfg_attr(not(bootstrap), allow(rustc::symbol_intern_string_literal))]
693694
sess.dcx().emit_err(errors::IncompatibleFeatures {
694695
spans: vec![gce_span],
695696
f1: Symbol::intern("-Znext-solver=globally"),

compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1450,6 +1450,7 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
14501450
ty::Param(param_ty) => Ok((
14511451
generics.type_param(param_ty, tcx),
14521452
predicate.trait_ref.print_trait_sugared().to_string(),
1453+
Some(predicate.trait_ref.def_id),
14531454
)),
14541455
_ => Err(()),
14551456
}
@@ -1463,9 +1464,9 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
14631464
tcx,
14641465
hir_generics,
14651466
err,
1466-
predicates
1467-
.iter()
1468-
.map(|(param, constraint)| (param.name.as_str(), &**constraint, None)),
1467+
predicates.iter().map(|(param, constraint, def_id)| {
1468+
(param.name.as_str(), &**constraint, *def_id)
1469+
}),
14691470
None,
14701471
);
14711472
}

compiler/rustc_borrowck/src/universal_regions.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ use rustc_middle::ty::{
3333
TyCtxt, TypeVisitableExt,
3434
};
3535
use rustc_middle::{bug, span_bug};
36+
use rustc_span::ErrorGuaranteed;
3637
use rustc_span::symbol::{kw, sym};
37-
use rustc_span::{ErrorGuaranteed, Symbol};
3838
use tracing::{debug, instrument};
3939

4040
use crate::BorrowckInferCtxt;
@@ -524,7 +524,7 @@ impl<'cx, 'tcx> UniversalRegionsBuilder<'cx, 'tcx> {
524524

525525
let reg_vid = self
526526
.infcx
527-
.next_nll_region_var(FR, || RegionCtxt::Free(Symbol::intern("c-variadic")))
527+
.next_nll_region_var(FR, || RegionCtxt::Free(sym::c_dash_variadic))
528528
.as_var();
529529

530530
let region = ty::Region::new_var(self.infcx.tcx, reg_vid);
@@ -540,10 +540,8 @@ impl<'cx, 'tcx> UniversalRegionsBuilder<'cx, 'tcx> {
540540
}
541541
}
542542

543-
let fr_fn_body = self
544-
.infcx
545-
.next_nll_region_var(FR, || RegionCtxt::Free(Symbol::intern("fn_body")))
546-
.as_var();
543+
let fr_fn_body =
544+
self.infcx.next_nll_region_var(FR, || RegionCtxt::Free(sym::fn_body)).as_var();
547545

548546
let num_universals = self.infcx.num_region_vars();
549547

compiler/rustc_codegen_cranelift/src/driver/jit.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ fn create_jit_module(
7474
jit_builder.symbol("__clif_jit_fn", clif_jit_fn as *const u8);
7575
let mut jit_module = UnwindModule::new(JITModule::new(jit_builder), false);
7676

77-
let cx = crate::CodegenCx::new(tcx, jit_module.isa(), false, Symbol::intern("dummy_cgu_name"));
77+
let cx = crate::CodegenCx::new(tcx, jit_module.isa(), false, sym::dummy_cgu_name);
7878

7979
crate::allocator::codegen(tcx, &mut jit_module);
8080

@@ -276,12 +276,7 @@ fn jit_fn(instance_ptr: *const Instance<'static>, trampoline_ptr: *const u8) ->
276276

277277
jit_module.module.prepare_for_function_redefine(func_id).unwrap();
278278

279-
let mut cx = crate::CodegenCx::new(
280-
tcx,
281-
jit_module.isa(),
282-
false,
283-
Symbol::intern("dummy_cgu_name"),
284-
);
279+
let mut cx = crate::CodegenCx::new(tcx, jit_module.isa(), false, sym::dummy_cgu_name);
285280
codegen_and_compile_fn(tcx, &mut cx, &mut Context::new(), jit_module, instance);
286281

287282
assert!(cx.global_asm.is_empty());

compiler/rustc_codegen_cranelift/src/lib.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,18 +189,13 @@ impl CodegenBackend for CraneliftCodegenBackend {
189189
// FIXME return the actually used target features. this is necessary for #[cfg(target_feature)]
190190
if sess.target.arch == "x86_64" && sess.target.os != "none" {
191191
// x86_64 mandates SSE2 support
192-
vec![Symbol::intern("fxsr"), sym::sse, Symbol::intern("sse2")]
192+
vec![sym::fsxr, sym::sse, sym::sse2]
193193
} else if sess.target.arch == "aarch64" {
194194
match &*sess.target.os {
195195
"none" => vec![],
196196
// On macOS the aes, sha2 and sha3 features are enabled by default and ring
197197
// fails to compile on macOS when they are not present.
198-
"macos" => vec![
199-
sym::neon,
200-
Symbol::intern("aes"),
201-
Symbol::intern("sha2"),
202-
Symbol::intern("sha3"),
203-
],
198+
"macos" => vec![sym::neon, sym::aes, sym::sha2, sym::sha3],
204199
// AArch64 mandates Neon support
205200
_ => vec![sym::neon],
206201
}

compiler/rustc_const_eval/src/check_consts/ops.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
140140
err,
141141
param_ty.name.as_str(),
142142
&constraint,
143-
None,
143+
Some(trait_ref.def_id),
144144
None,
145145
);
146146
}

compiler/rustc_hir_analysis/src/collect/generics_of.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ pub(super) fn generics_of(tcx: TyCtxt<'_>, def_id: LocalDefId) -> ty::Generics {
419419
if let Node::ConstBlock(_) = node {
420420
own_params.push(ty::GenericParamDef {
421421
index: next_index(),
422-
name: Symbol::intern("<const_ty>"),
422+
name: rustc_span::sym::const_ty_placeholder,
423423
def_id: def_id.to_def_id(),
424424
pure_wrt_drop: false,
425425
kind: ty::GenericParamDefKind::Type { has_default: false, synthetic: false },

compiler/rustc_hir_analysis/src/hir_ty_lowering/errors.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,13 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
279279
} else {
280280
let mut err = self.dcx().create_err(err);
281281
if suggest_constraining_type_param(
282-
tcx, generics, &mut err, &qself_str, &trait_ref, None, None,
282+
tcx,
283+
generics,
284+
&mut err,
285+
&qself_str,
286+
&trait_ref,
287+
Some(best_trait),
288+
None,
283289
) && !identically_named
284290
{
285291
// We suggested constraining a type parameter, but the associated item on it

compiler/rustc_hir_typeck/src/fn_ctxt/mod.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,11 @@ impl<'tcx> HirTyLowerer<'tcx> for FnCtxt<'_, 'tcx> {
307307
ty::Alias(ty::Projection | ty::Inherent | ty::Weak, _)
308308
if !ty.has_escaping_bound_vars() =>
309309
{
310-
self.normalize(span, ty).ty_adt_def()
310+
if self.next_trait_solver() {
311+
self.try_structurally_resolve_type(span, ty).ty_adt_def()
312+
} else {
313+
self.normalize(span, ty).ty_adt_def()
314+
}
311315
}
312316
_ => None,
313317
}

0 commit comments

Comments
 (0)