summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_passes/src/lang_items.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_passes/src/lang_items.rs')
-rw-r--r--compiler/rustc_passes/src/lang_items.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/compiler/rustc_passes/src/lang_items.rs b/compiler/rustc_passes/src/lang_items.rs
index 476394f30..7e8372439 100644
--- a/compiler/rustc_passes/src/lang_items.rs
+++ b/compiler/rustc_passes/src/lang_items.rs
@@ -20,7 +20,8 @@ use rustc_hir::lang_items::{extract, GenericRequirement};
use rustc_hir::{LangItem, LanguageItems, Target};
use rustc_middle::ty::TyCtxt;
use rustc_session::cstore::ExternCrate;
-use rustc_span::{symbol::kw::Empty, Span};
+use rustc_span::symbol::kw::Empty;
+use rustc_span::{sym, Span};
use rustc_middle::query::Providers;
@@ -157,7 +158,14 @@ impl<'tcx> LanguageItemCollector<'tcx> {
self.tcx.hir().get_by_def_id(item_def_id)
{
let (actual_num, generics_span) = match kind.generics() {
- Some(generics) => (generics.params.len(), generics.span),
+ Some(generics) => (
+ generics
+ .params
+ .iter()
+ .filter(|p| !self.tcx.has_attr(p.def_id, sym::rustc_host))
+ .count(),
+ generics.span,
+ ),
None => (0, *item_span),
};