Rollup merge of #118863 - Enselic:rustc_mir-build-query-stability, r=michaelwoerister
rustc_mir_build: Enforce `rustc::potential_query_instability` lint Stop allowing `rustc::potential_query_instability` on all of `rustc_mir_build` and instead allow it on a case-by-case basis if it is safe to do so. In this crate there was only one instance of the lint, and it was safe to allow. Part of https://github.com/rust-lang/rust/issues/84447 which is E-help-wanted.
This commit is contained in:
commit
d3d0287330
@ -1,7 +1,6 @@
|
|||||||
//! Construction of MIR from HIR.
|
//! Construction of MIR from HIR.
|
||||||
//!
|
//!
|
||||||
//! This crate also contains the match exhaustiveness and usefulness checking.
|
//! This crate also contains the match exhaustiveness and usefulness checking.
|
||||||
#![allow(rustc::potential_query_instability)]
|
|
||||||
#![feature(assert_matches)]
|
#![feature(assert_matches)]
|
||||||
#![feature(associated_type_bounds)]
|
#![feature(associated_type_bounds)]
|
||||||
#![feature(box_patterns)]
|
#![feature(box_patterns)]
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
use rustc_arena::TypedArena;
|
use rustc_arena::TypedArena;
|
||||||
use rustc_ast::Mutability;
|
use rustc_ast::Mutability;
|
||||||
use rustc_data_structures::fx::FxHashSet;
|
use rustc_data_structures::fx::FxIndexSet;
|
||||||
use rustc_data_structures::stack::ensure_sufficient_stack;
|
use rustc_data_structures::stack::ensure_sufficient_stack;
|
||||||
use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder, ErrorGuaranteed, MultiSpan};
|
use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder, ErrorGuaranteed, MultiSpan};
|
||||||
use rustc_hir as hir;
|
use rustc_hir as hir;
|
||||||
@ -948,7 +948,7 @@ fn report_non_exhaustive_match<'p, 'tcx>(
|
|||||||
err.note(format!("the matched value is of type `{}`", scrut_ty));
|
err.note(format!("the matched value is of type `{}`", scrut_ty));
|
||||||
|
|
||||||
if !is_empty_match {
|
if !is_empty_match {
|
||||||
let mut non_exhaustive_tys = FxHashSet::default();
|
let mut non_exhaustive_tys = FxIndexSet::default();
|
||||||
// Look at the first witness.
|
// Look at the first witness.
|
||||||
collect_non_exhaustive_tys(cx, &witnesses[0], &mut non_exhaustive_tys);
|
collect_non_exhaustive_tys(cx, &witnesses[0], &mut non_exhaustive_tys);
|
||||||
|
|
||||||
@ -1104,7 +1104,7 @@ fn joined_uncovered_patterns<'p, 'tcx>(
|
|||||||
fn collect_non_exhaustive_tys<'tcx>(
|
fn collect_non_exhaustive_tys<'tcx>(
|
||||||
cx: &MatchCheckCtxt<'_, 'tcx>,
|
cx: &MatchCheckCtxt<'_, 'tcx>,
|
||||||
pat: &WitnessPat<'tcx>,
|
pat: &WitnessPat<'tcx>,
|
||||||
non_exhaustive_tys: &mut FxHashSet<Ty<'tcx>>,
|
non_exhaustive_tys: &mut FxIndexSet<Ty<'tcx>>,
|
||||||
) {
|
) {
|
||||||
if matches!(pat.ctor(), Constructor::NonExhaustive) {
|
if matches!(pat.ctor(), Constructor::NonExhaustive) {
|
||||||
non_exhaustive_tys.insert(pat.ty());
|
non_exhaustive_tys.insert(pat.ty());
|
||||||
|
Loading…
Reference in New Issue
Block a user