mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00
Rollup merge of #137263 - compiler-errors:inherentless, r=lcnr
Register `USAGE_OF_TYPE_IR_INHERENT`, remove inherent usages I implemented a lint to discourage the usage of `rustc_type_ir::inherent` but never actually enabled it. People started using `rustc_type_ir::inherent` methods through globs, lol. r? fmease or reassign as you please
This commit is contained in:
commit
4981994588
@ -641,6 +641,7 @@ fn register_internals(store: &mut LintStore) {
|
||||
LintId::of(LINT_PASS_IMPL_WITHOUT_MACRO),
|
||||
LintId::of(USAGE_OF_QUALIFIED_TY),
|
||||
LintId::of(NON_GLOB_IMPORT_OF_TYPE_IR_INHERENT),
|
||||
LintId::of(USAGE_OF_TYPE_IR_INHERENT),
|
||||
LintId::of(BAD_OPT_ACCESS),
|
||||
LintId::of(SPAN_USE_EQ_CTXT),
|
||||
],
|
||||
|
@ -1,9 +1,8 @@
|
||||
//! This module ensures that if a function's ABI requires a particular target feature,
|
||||
//! that target feature is enabled both on the callee and all callers.
|
||||
use rustc_abi::{BackendRepr, RegKind};
|
||||
use rustc_abi::{BackendRepr, ExternAbi, RegKind};
|
||||
use rustc_hir::CRATE_HIR_ID;
|
||||
use rustc_middle::mir::{self, traversal};
|
||||
use rustc_middle::ty::inherent::*;
|
||||
use rustc_middle::ty::{self, Instance, InstanceKind, Ty, TyCtxt};
|
||||
use rustc_session::lint::builtin::ABI_UNSUPPORTED_VECTOR_TYPES;
|
||||
use rustc_span::def_id::DefId;
|
||||
@ -97,7 +96,7 @@ fn check_call_site_abi<'tcx>(
|
||||
span: Span,
|
||||
caller: InstanceKind<'tcx>,
|
||||
) {
|
||||
if callee.fn_sig(tcx).abi().is_rust() {
|
||||
if callee.fn_sig(tcx).abi() == ExternAbi::Rust {
|
||||
// "Rust" ABI never passes arguments in vector registers.
|
||||
return;
|
||||
}
|
||||
|
@ -18,7 +18,6 @@ use rustc_middle::ty::{
|
||||
TypeFoldable, TypeFolder, TypeSuperFoldable, TypeckResults,
|
||||
};
|
||||
use rustc_span::{BytePos, DUMMY_SP, FileName, Ident, Span, sym};
|
||||
use rustc_type_ir::inherent::*;
|
||||
use rustc_type_ir::visit::TypeVisitableExt;
|
||||
use tracing::{debug, instrument, warn};
|
||||
|
||||
@ -217,7 +216,7 @@ impl<'a, 'tcx> TypeFolder<TyCtxt<'tcx>> for ClosureEraser<'a, 'tcx> {
|
||||
// `_` because then we'd end up with `Vec<_, _>`, instead of
|
||||
// `Vec<_>`.
|
||||
arg
|
||||
} else if let GenericArgKind::Type(_) = arg.kind() {
|
||||
} else if let GenericArgKind::Type(_) = arg.unpack() {
|
||||
// We don't replace lifetime or const params, only type params.
|
||||
self.new_infer().into()
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user