Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
5e1ddfa
ci: declare contents:read on Tier 2 sysroots workflow
arpitjain099 May 14, 2026
7dd6d8b
rename set_last_error_and_return helper to make it clear what we return
RalfJung May 19, 2026
facda40
Merge pull request #5049 from RalfJung/set-last-error-and-return
RalfJung May 19, 2026
1c4042b
Prepare for merging from rust-lang/rust
May 20, 2026
873c7f0
Merge ref '1f8e04d34ab0' from rust-lang/rust
May 20, 2026
d4406dd
fix: enable filling up write buffer on Windows hosts
WhySoBad May 20, 2026
b06adbf
Merge pull request #5052 from rust-lang/rustup-2026-05-20
RalfJung May 20, 2026
d4a8031
restrict vendor intrinsics to little-endian targets
RalfJung May 24, 2026
6d8947e
Merge pull request #5061 from RalfJung/endian
RalfJung May 24, 2026
da3727f
Support running no_core Linux programs
saethlin Apr 15, 2026
9a681ab
Merge pull request #4964 from saethlin/support-no-core
saethlin May 24, 2026
30b942d
as_mut_ptr test update description
quiode May 20, 2026
678ef5a
Merge pull request #5055 from quiode/patch-1
RalfJung May 24, 2026
cebc29f
fix: deallocate temporary buffer on failed `readv`
WhySoBad May 20, 2026
102df46
Merge pull request #5054 from WhySoBad/network-socket-fix-deallocate-…
RalfJung May 24, 2026
c1f7fa1
Merge pull request #5053 from WhySoBad/network-socket-test-fill-buffe…
RalfJung May 24, 2026
a799d97
ci(ci): declare workflow-level contents: read per RalfJung
arpitjain099 May 26, 2026
d9accd4
mkstemp: do not silently do the wrong thing on non-Unix/Windows hosts
RalfJung May 26, 2026
2914eb7
non-Windows path handling: make the code match the comment
RalfJung May 26, 2026
820ba86
Merge pull request #5066 from RalfJung/non-win-unix
RalfJung May 26, 2026
ee8da29
Add support for socket read and write timeouts
WhySoBad May 13, 2026
a5e9441
Merge pull request #5040 from arpitjain099/chore/sysroots-permissions
RalfJung May 26, 2026
49972bd
Merge pull request #5042 from WhySoBad/network-socket-read-write-timeout
RalfJung May 26, 2026
5af8307
Replace version placeholders with 1.97.0
cuviper May 25, 2026
ff501bb
Bump stage0 to 1.97.0-beta.1
cuviper May 26, 2026
59428e7
MIR inlining: allow backends to opt-in to inlining intrinsics
RalfJung May 10, 2026
ac2e825
fix: make socket tests work on native host
WhySoBad May 23, 2026
d8cc267
Update `cfg(bootstrap)` for the new stage0
cuviper May 26, 2026
24b5e78
Drop `-Zwarnings` since cargo `build.warnings` is now stable
cuviper May 26, 2026
3ccd1cb
Reformat with the new stage0
cuviper May 26, 2026
81c4a78
Merge pull request #5059 from WhySoBad/network-socket-fix-tests-for-n…
RalfJung May 27, 2026
5d3fc4f
Process host I/O events before any foreign function invocation
WhySoBad May 20, 2026
8cb7db2
Merge pull request #5060 from WhySoBad/host-io-poll-before-foreign-item
RalfJung May 27, 2026
a0a7e16
resolve: Partially convert `ambiguous_glob_imports` lint into a hard …
petrochenkov Nov 21, 2025
56f5c38
Fix const-eval of shared generic reborrows
P8L1 May 25, 2026
08b2bee
Rollup merge of #156995 - cuviper:bootstrap-update, r=Mark-Simulacrum
JonathanBrouwer May 27, 2026
d714e49
Rollup merge of #149195 - petrochenkov:globamberr, r=mu001999
JonathanBrouwer May 27, 2026
a0720b9
Rollup merge of #157022 - RalfJung:inline-intrinsics-v2, r=oli-obk
JonathanBrouwer May 27, 2026
25b561c
Rollup merge of #157026 - RalfJung:miri, r=RalfJung
JonathanBrouwer May 27, 2026
2e94232
Rollup merge of #156955 - P8L1:fix-reborrow-promotion-consteval, r=Ra…
JonathanBrouwer May 27, 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
4 changes: 4 additions & 0 deletions compiler/rustc_codegen_cranelift/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,10 @@ impl CodegenBackend for CraneliftCodegenBackend {
) -> (CompiledModules, FxIndexMap<WorkProductId, WorkProduct>) {
ongoing_codegen.downcast::<driver::aot::OngoingCodegen>().unwrap().join(sess, outputs)
}

fn fallback_intrinsics(&self) -> Vec<Symbol> {
vec![sym::type_id_eq]
}
}

/// Determine if the Cranelift ir verifier should run.
Expand Down
2 changes: 0 additions & 2 deletions compiler/rustc_codegen_gcc/build_system/src/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -886,8 +886,6 @@ fn valid_ui_error_pattern_test(file: &str) -> bool {
"type-alias-impl-trait/auxiliary/cross_crate_ice.rs",
"type-alias-impl-trait/auxiliary/cross_crate_ice2.rs",
"macros/rfc-2011-nicer-assert-messages/auxiliary/common.rs",
"imports/ambiguous-1.rs",
"imports/ambiguous-4-extern.rs",
"entry-point/auxiliary/bad_main_functions.rs",
]
.iter()
Expand Down
6 changes: 5 additions & 1 deletion compiler/rustc_codegen_gcc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ use rustc_middle::ty::TyCtxt;
use rustc_middle::util::Providers;
use rustc_session::Session;
use rustc_session::config::{OptLevel, OutputFilenames};
use rustc_span::Symbol;
use rustc_span::{Symbol, sym};
use rustc_target::spec::{Arch, RelocModel};
use tempfile::TempDir;

Expand Down Expand Up @@ -311,6 +311,10 @@ impl CodegenBackend for GccCodegenBackend {
fn target_config(&self, sess: &Session) -> TargetConfig {
target_config(sess, &self.target_info)
}

fn fallback_intrinsics(&self) -> Vec<Symbol> {
vec![sym::type_id_eq]
}
}

fn new_context<'gcc, 'tcx>(tcx: TyCtxt<'tcx>) -> Context<'gcc> {
Expand Down
8 changes: 8 additions & 0 deletions compiler/rustc_codegen_llvm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,14 @@ impl CodegenBackend for LlvmCodegenBackend {
will_not_use_fallback
}

fn fallback_intrinsics(&self) -> Vec<Symbol> {
// `type_id_eq` is a safe choice since *all* backends use the fallback body for that.
// When adding more intrinsics, keep in mind that the distributed standard library
// is compiled with the LLVM backend but might later be included in a project built
// with cranelift or GCC.
vec![sym::type_id_eq]
}

fn target_cpu(&self, sess: &Session) -> String {
crate::llvm_util::target_cpu(sess).to_string()
}
Expand Down
6 changes: 6 additions & 0 deletions compiler/rustc_codegen_ssa/src/traits/backend.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,12 @@ pub trait CodegenBackend {
vec![]
}

/// Returns a list of all intrinsics that this backend definitely
/// does *not* replace, which means their fallback bodies can be MIR-inlined.
fn fallback_intrinsics(&self) -> Vec<Symbol> {
vec![]
}

/// Is ThinLTO supported by this backend?
fn thin_lto_supported(&self) -> bool {
true
Expand Down
12 changes: 9 additions & 3 deletions compiler/rustc_const_eval/src/interpret/step.rs
Original file line number Diff line number Diff line change
Expand Up @@ -230,9 +230,15 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
})?;
}

Reborrow(_, _, place) => {
let op = self.eval_place_to_op(place, Some(dest.layout))?;
self.copy_op(&op, &dest)?;
Reborrow(_, mutability, place) => {
let op = self.eval_place_to_op(place, None)?;
if mutability.is_not() {
// Shared generic reborrows use `CoerceShared`: a bitwise copy into a
// distinct same-layout target ADT.
self.copy_op_allow_transmute(&op, &dest)?;
} else {
self.copy_op(&op, &dest)?;
}
}

RawPtr(kind, place) => {
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_data_structures/src/unord.rs
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ pub struct UnordSet<V: Eq + Hash> {

impl<V: Eq + Hash> UnordCollection for UnordSet<V> {}

impl<V: Eq + Hash> const Default for UnordSet<V> {
const impl<V: Eq + Hash> Default for UnordSet<V> {
#[inline]
fn default() -> Self {
Self { inner: FxHashSet::with_hasher(FxBuildHasher) }
Expand Down Expand Up @@ -456,7 +456,7 @@ pub struct UnordMap<K: Eq + Hash, V> {

impl<K: Eq + Hash, V> UnordCollection for UnordMap<K, V> {}

impl<K: Eq + Hash, V> const Default for UnordMap<K, V> {
const impl<K: Eq + Hash, V> Default for UnordMap<K, V> {
#[inline]
fn default() -> Self {
Self { inner: FxHashMap::with_hasher(FxBuildHasher) }
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_feature/src/accepted.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ declare_features! (
/// Allows `cfg(target_feature = "...")`.
(accepted, cfg_target_feature, "1.27.0", Some(29717)),
/// Allows `cfg(target_has_atomic_primitive_alignment = "...")`.
(accepted, cfg_target_has_atomic_equal_alignment, "CURRENT_RUSTC_VERSION", Some(93822)),
(accepted, cfg_target_has_atomic_equal_alignment, "1.97.0", Some(93822)),
/// Allows `cfg(target_vendor = "...")`.
(accepted, cfg_target_vendor, "1.33.0", Some(29718)),
/// Allows implementing `Clone` for closures where possible (RFC 2132).
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_feature/src/removed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ declare_features! (
(removed, string_deref_patterns, "1.94.0", Some(87121), Some("superseded by `deref_patterns`"), 150530),
(removed, struct_inherit, "1.0.0", None, None),
/// Allows the use of target_feature when a function is marked inline(always).
(removed, target_feature_inline_always, "CURRENT_RUSTC_VERSION", Some(145574),
(removed, target_feature_inline_always, "1.97.0", Some(145574),
Some("removed because of unfixable soundness issues")),
(removed, test_removed_feature, "1.0.0", None, None),
/// Allows using items which are missing stability attributes
Expand Down
18 changes: 9 additions & 9 deletions compiler/rustc_feature/src/unstable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ declare_features! (
/// Allows identifying the `compiler_builtins` crate.
(internal, compiler_builtins, "1.13.0", None),
/// Allows skipping `ConstParamTy_` trait implementation checks
(internal, const_param_ty_unchecked, "CURRENT_RUSTC_VERSION", None),
(internal, const_param_ty_unchecked, "1.97.0", None),
/// Allows writing custom MIR
(internal, custom_mir, "1.65.0", None),
/// Implementation details of externally implementable items
Expand Down Expand Up @@ -381,7 +381,7 @@ declare_features! (
/// Allows `extern "riscv-interrupt-m" fn()` and `extern "riscv-interrupt-s" fn()`.
(unstable, abi_riscv_interrupt, "1.73.0", Some(111889)),
/// Allows `extern "Swift" fn()`.
(unstable, abi_swift, "CURRENT_RUSTC_VERSION", Some(156481)),
(unstable, abi_swift, "1.97.0", Some(156481)),
/// Allows `extern "x86-interrupt" fn()`.
(unstable, abi_x86_interrupt, "1.17.0", Some(40180)),
/// Allows additional const parameter types, such as `[u8; 10]` or user defined types
Expand Down Expand Up @@ -426,7 +426,7 @@ declare_features! (
(unstable, c_variadic, "1.34.0", Some(44930)),
/// Allows defining c-variadic functions on targets where this feature has not yet
/// undergone sufficient testing for stabilization.
(unstable, c_variadic_experimental_arch, "CURRENT_RUSTC_VERSION", Some(155973)),
(unstable, c_variadic_experimental_arch, "1.97.0", Some(155973)),
/// Allows defining c-variadic naked functions with any extern ABI that is allowed
/// on c-variadic foreign functions.
(unstable, c_variadic_naked_functions, "1.93.0", Some(148767)),
Expand All @@ -445,7 +445,7 @@ declare_features! (
/// Allows `cfg(target_has_atomic_load_store = "...")`.
(unstable, cfg_target_has_atomic, "1.60.0", Some(94039)),
/// Allows `cfg(target_object_format = "...")`.
(unstable, cfg_target_object_format, "CURRENT_RUSTC_VERSION", Some(152586)),
(unstable, cfg_target_object_format, "1.97.0", Some(152586)),
/// Allows `cfg(target_thread_local)`.
(unstable, cfg_target_thread_local, "1.7.0", Some(29594)),
/// Allows the use of `#[cfg(ub_checks)` to check if UB checks are enabled.
Expand Down Expand Up @@ -513,7 +513,7 @@ declare_features! (
/// Allows giving unresolved imports a custom diagnostic message
(unstable, diagnostic_on_unknown, "1.96.0", Some(152900)),
/// Allows macros to customize macro argument matcher diagnostics.
(unstable, diagnostic_on_unmatch_args, "CURRENT_RUSTC_VERSION", Some(155642)),
(unstable, diagnostic_on_unmatch_args, "1.97.0", Some(155642)),
/// Allows `#[doc(cfg(...))]`.
(unstable, doc_cfg, "1.21.0", Some(43781)),
/// Allows `#[doc(masked)]`.
Expand Down Expand Up @@ -549,7 +549,7 @@ declare_features! (
/// Allows marking trait functions as `final` to prevent overriding impls
(unstable, final_associated_functions, "1.95.0", Some(131179)),
/// fma4 target feature on x86.
(unstable, fma4_target_feature, "CURRENT_RUSTC_VERSION", Some(155233)),
(unstable, fma4_target_feature, "1.97.0", Some(155233)),
/// Controlling the behavior of fmt::Debug
(unstable, fmt_debug, "1.82.0", Some(129709)),
/// Allows using `#[align(...)]` on function items
Expand Down Expand Up @@ -582,7 +582,7 @@ declare_features! (
/// Target features on hexagon.
(unstable, hexagon_target_feature, "1.27.0", Some(150250)),
/// Allows `impl(crate) trait Foo` restrictions.
(unstable, impl_restriction, "CURRENT_RUSTC_VERSION", Some(105077)),
(unstable, impl_restriction, "1.97.0", Some(105077)),
/// Allows `impl Trait` to be used inside associated types (RFC 2515).
(unstable, impl_trait_in_assoc_type, "1.70.0", Some(63063)),
/// Allows `impl Trait` in bindings (`let`).
Expand Down Expand Up @@ -639,7 +639,7 @@ declare_features! (
/// Allows qualified paths in struct expressions, struct patterns and tuple struct patterns.
(unstable, more_qualified_paths, "1.54.0", Some(86935)),
/// Allows `move(expr)` in closures.
(incomplete, move_expr, "CURRENT_RUSTC_VERSION", Some(155050)),
(incomplete, move_expr, "1.97.0", Some(155050)),
/// The `movrs` target feature on x86.
(unstable, movrs_target_feature, "1.88.0", Some(137976)),
/// Allows the `multiple_supertrait_upcastable` lint.
Expand Down Expand Up @@ -760,7 +760,7 @@ declare_features! (
/// Allows using the `#[used(linker)]` (or `#[used(compiler)]`) attribute.
(unstable, used_with_arg, "1.60.0", Some(93798)),
/// Allows view types.
(unstable, view_types, "CURRENT_RUSTC_VERSION", Some(155938)),
(unstable, view_types, "1.97.0", Some(155938)),
/// Target features on wasm.
(unstable, wasm_target_feature, "1.30.0", Some(150260)),
/// Allows use of attributes in `where` clauses.
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_interface/src/interface.rs
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,7 @@ pub fn run_compiler<R: Send>(config: Config, f: impl FnOnce(&Compiler) -> R + Se
};
codegen_backend.init(&sess);
sess.replaced_intrinsics = FxHashSet::from_iter(codegen_backend.replaced_intrinsics());
sess.fallback_intrinsics = FxHashSet::from_iter(codegen_backend.fallback_intrinsics());
sess.thin_lto_supported = codegen_backend.thin_lto_supported();

let cfg = parse_cfg(sess.dcx(), config.crate_cfg);
Expand Down
32 changes: 12 additions & 20 deletions compiler/rustc_lint_defs/src/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4529,28 +4529,21 @@ declare_lint! {
///
/// ### Example
///
/// ```rust,compile_fail
/// #![deny(ambiguous_glob_imports)]
/// pub fn foo() -> u32 {
/// use sub::*;
/// C
/// }
///
/// mod sub {
/// mod mod1 { pub const C: u32 = 1; }
/// mod mod2 { pub const C: u32 = 2; }
/// ```rust,ignore (needs extern crate)
/// // library crate `my_library`
/// mod mod1 { pub const C: u32 = 1; }
/// mod mod2 { pub const C: u32 = 2; }
/// pub use mod1::*;
/// pub use mod2::*;
///
/// pub use mod1::*;
/// pub use mod2::*;
/// }
/// // another crate using `my_library`
/// let c = my_library::C; // `C` is ambiguous
/// ```
///
/// {{produces}}
///
/// ### Explanation
///
/// Previous versions of Rust compile it successfully because it
/// had lost the ambiguity error when resolve `use sub::mod2::*`.
/// Previous versions of Rust compile it successfully because
/// ambiguous glob imports weren't preserved correctly over crate boundaries.
///
/// This is a [future-incompatible] lint to transition this to a
/// hard error in the future.
Expand Down Expand Up @@ -5453,16 +5446,15 @@ declare_lint! {
///
/// ### Example
///
#[cfg_attr(bootstrap, doc = "```rust")]
#[cfg_attr(not(bootstrap), doc = "```rust,compile_fail")]
/// ```rust,compile_fail
/// // Using `...` in non-foreign function definitions is unstable, however stability is
/// // currently only checked after attributes are expanded, so using `#[cfg(false)]` here will
/// // allow this to compile on stable Rust.
/// #[cfg(false)]
/// fn foo(...) {
///
/// }
#[doc = "```"]
/// ```
///
/// {{produces}}
///
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_middle/src/middle/codegen_fn_attrs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ pub struct SanitizerFnAttrs {
pub rtsan_setting: RtsanSetting,
}

impl const Default for SanitizerFnAttrs {
const impl Default for SanitizerFnAttrs {
fn default() -> Self {
Self { disabled: SanitizerSet::empty(), rtsan_setting: RtsanSetting::default() }
}
Expand Down
12 changes: 6 additions & 6 deletions compiler/rustc_mir_transform/src/check_inline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,12 @@ pub(super) fn is_inline_valid_on_fn<'tcx>(
return Err("cold");
}

// Intrinsic fallback bodies are automatically made cross-crate inlineable,
// but at this stage we don't know whether codegen knows the intrinsic,
// so just conservatively don't inline it. This also ensures that we do not
// accidentally inline the body of an intrinsic that *must* be overridden.
if find_attr!(tcx, def_id, RustcIntrinsic) {
return Err("callee is an intrinsic");
// Intrinsics without fallback body cannot be inlined. The logic for which intrinsics *with*
// body can be inlined is in the inlining pass.
if let Some(intrinsic) = tcx.intrinsic(def_id)
&& intrinsic.must_be_overridden
{
return Err("callee is an intrinsic without fallback body");
}

Ok(())
Expand Down
16 changes: 14 additions & 2 deletions compiler/rustc_mir_transform/src/inline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -565,12 +565,24 @@ fn resolve_callsite<'tcx, I: Inliner<'tcx>>(
let args = tcx
.try_normalize_erasing_regions(inliner.typing_env(), Unnormalized::new_wip(args))
.ok()?;
let callee =
let mut callee =
Instance::try_resolve(tcx, inliner.typing_env(), def_id, args).ok().flatten()?;

if let InstanceKind::Virtual(..) | InstanceKind::Intrinsic(_) = callee.def {
if let InstanceKind::Virtual(..) = callee.def {
return None;
}
if let InstanceKind::Intrinsic(..) = callee.def {
let intrinsic = tcx.intrinsic(def_id).unwrap();
if intrinsic.must_be_overridden {
return None; // intrinsic without fallback body
}
if !tcx.sess.fallback_intrinsics.contains(&intrinsic.name) {
return None; // intrinsic that the backend may want to overwrite
}
// The callee is the fallback body.
debug!("callsite is fallback body: {def_id:?}");
callee = ty::Instance { def: ty::InstanceKind::Item(def_id), args: callee.args };
}

if inliner.history().contains(&callee.def_id()) {
return None;
Expand Down
6 changes: 1 addition & 5 deletions compiler/rustc_mir_transform/src/promote_consts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -580,11 +580,7 @@ impl<'tcx> Validator<'_, 'tcx> {
self.validate_ref(*kind, place)?;
}

Rvalue::Reborrow(_, _, place) => {
// FIXME(reborrow): should probably have a place_simplified like above.
let op = &Operand::Copy(*place);
self.validate_operand(op)?
}
Rvalue::Reborrow(..) => return Err(Unpromotable),

Rvalue::Aggregate(_, operands) => {
for o in operands {
Expand Down
9 changes: 4 additions & 5 deletions compiler/rustc_resolve/src/build_reduced_graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
decl: Decl<'ra>,
) {
if let Err(old_decl) =
self.try_plant_decl_into_local_module(ident, orig_ident_span, ns, decl, false)
self.try_plant_decl_into_local_module(ident, orig_ident_span, ns, decl)
{
self.report_conflict(ident, ns, old_decl, decl);
}
Expand Down Expand Up @@ -87,13 +87,11 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
vis: Visibility<DefId>,
span: Span,
expansion: LocalExpnId,
ambiguity: Option<Decl<'ra>>,
ambiguity: Option<(Decl<'ra>, bool)>,
) {
let decl = self.arenas.alloc_decl(DeclData {
kind: DeclKind::Def(res),
ambiguity: CmCell::new(ambiguity),
// External ambiguities always report the `AMBIGUOUS_GLOB_IMPORTS` lint at the moment.
warn_ambiguity: CmCell::new(true),
initial_vis: vis,
ambiguity_vis_max: CmCell::new(None),
ambiguity_vis_min: CmCell::new(None),
Expand Down Expand Up @@ -392,7 +390,8 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
let ModChild { ident: _, res, vis, ref reexport_chain } = *ambig_child;
let span = child_span(self, reexport_chain, res);
let res = res.expect_non_local();
self.arenas.new_def_decl(res, vis, span, expansion, Some(parent.to_module()))
// External ambiguities always report the `AMBIGUOUS_GLOB_IMPORTS` lint at the moment.
(self.arenas.new_def_decl(res, vis, span, expansion, Some(parent.to_module())), true)
});

// Record primary definitions.
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_resolve/src/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1188,7 +1188,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
.emit()
}

fn def_path_str(&self, mut def_id: DefId) -> String {
pub(crate) fn def_path_str(&self, mut def_id: DefId) -> String {
// We can't use `def_path_str` in resolve.
let mut path = vec![def_id];
while let Some(parent) = self.tcx.opt_parent(def_id) {
Expand Down
Loading
Loading