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
3 changed files with 4 additions and 5 deletions
|
@ -641,6 +641,7 @@ fn register_internals(store: &mut LintStore) {
|
||||||
LintId::of(LINT_PASS_IMPL_WITHOUT_MACRO),
|
LintId::of(LINT_PASS_IMPL_WITHOUT_MACRO),
|
||||||
LintId::of(USAGE_OF_QUALIFIED_TY),
|
LintId::of(USAGE_OF_QUALIFIED_TY),
|
||||||
LintId::of(NON_GLOB_IMPORT_OF_TYPE_IR_INHERENT),
|
LintId::of(NON_GLOB_IMPORT_OF_TYPE_IR_INHERENT),
|
||||||
|
LintId::of(USAGE_OF_TYPE_IR_INHERENT),
|
||||||
LintId::of(BAD_OPT_ACCESS),
|
LintId::of(BAD_OPT_ACCESS),
|
||||||
LintId::of(SPAN_USE_EQ_CTXT),
|
LintId::of(SPAN_USE_EQ_CTXT),
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
//! This module ensures that if a function's ABI requires a particular target feature,
|
//! 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.
|
//! 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_hir::CRATE_HIR_ID;
|
||||||
use rustc_middle::mir::{self, traversal};
|
use rustc_middle::mir::{self, traversal};
|
||||||
use rustc_middle::ty::inherent::*;
|
|
||||||
use rustc_middle::ty::{self, Instance, InstanceKind, Ty, TyCtxt};
|
use rustc_middle::ty::{self, Instance, InstanceKind, Ty, TyCtxt};
|
||||||
use rustc_session::lint::builtin::ABI_UNSUPPORTED_VECTOR_TYPES;
|
use rustc_session::lint::builtin::ABI_UNSUPPORTED_VECTOR_TYPES;
|
||||||
use rustc_span::def_id::DefId;
|
use rustc_span::def_id::DefId;
|
||||||
|
@ -97,7 +96,7 @@ fn check_call_site_abi<'tcx>(
|
||||||
span: Span,
|
span: Span,
|
||||||
caller: InstanceKind<'tcx>,
|
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.
|
// "Rust" ABI never passes arguments in vector registers.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@ use rustc_middle::ty::{
|
||||||
TypeFoldable, TypeFolder, TypeSuperFoldable, TypeckResults,
|
TypeFoldable, TypeFolder, TypeSuperFoldable, TypeckResults,
|
||||||
};
|
};
|
||||||
use rustc_span::{BytePos, DUMMY_SP, FileName, Ident, Span, sym};
|
use rustc_span::{BytePos, DUMMY_SP, FileName, Ident, Span, sym};
|
||||||
use rustc_type_ir::inherent::*;
|
|
||||||
use rustc_type_ir::visit::TypeVisitableExt;
|
use rustc_type_ir::visit::TypeVisitableExt;
|
||||||
use tracing::{debug, instrument, warn};
|
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
|
// `_` because then we'd end up with `Vec<_, _>`, instead of
|
||||||
// `Vec<_>`.
|
// `Vec<_>`.
|
||||||
arg
|
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.
|
// We don't replace lifetime or const params, only type params.
|
||||||
self.new_infer().into()
|
self.new_infer().into()
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue