awdawdawd
This commit is contained in:
parent
8f117a77d0
commit
7175980ff5
3 changed files with 5 additions and 21 deletions
|
@ -53,7 +53,7 @@ use rustc_hir::def::{DefKind, Namespace, PartialRes, PerNS, Res};
|
|||
use rustc_hir::def_id::{DefId, DefPathHash, LocalDefId, CRATE_DEF_ID};
|
||||
use rustc_hir::definitions::{DefKey, DefPathData, Definitions};
|
||||
use rustc_hir::intravisit;
|
||||
use rustc_hir::{ConstArg, GenericArg, InferKind, ParamName};
|
||||
use rustc_hir::{ConstArg, GenericArg, ParamName};
|
||||
use rustc_index::vec::{Idx, IndexVec};
|
||||
use rustc_query_system::ich::StableHashingContext;
|
||||
use rustc_session::lint::builtin::BARE_TRAIT_OBJECTS;
|
||||
|
@ -1114,7 +1114,6 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
|
|||
return GenericArg::Infer(hir::InferArg {
|
||||
hir_id: self.lower_node_id(ty.id),
|
||||
span: self.lower_span(ty.span),
|
||||
kind: InferKind::Type,
|
||||
});
|
||||
}
|
||||
// We parse const arguments as path types as we cannot distinguish them during
|
||||
|
|
|
@ -255,23 +255,9 @@ pub struct ConstArg {
|
|||
pub span: Span,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Encodable, Debug, HashStable_Generic)]
|
||||
pub enum InferKind {
|
||||
Const,
|
||||
Type,
|
||||
}
|
||||
|
||||
impl InferKind {
|
||||
#[inline]
|
||||
pub fn is_type(self) -> bool {
|
||||
matches!(self, InferKind::Type)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Encodable, Debug, HashStable_Generic)]
|
||||
pub struct InferArg {
|
||||
pub hir_id: HirId,
|
||||
pub kind: InferKind,
|
||||
pub span: Span,
|
||||
}
|
||||
|
||||
|
|
|
@ -2541,8 +2541,8 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> {
|
|||
GenericParamDefKind::Type { object_lifetime_default, .. } => {
|
||||
Some(object_lifetime_default)
|
||||
}
|
||||
GenericParamDefKind::Lifetime
|
||||
| GenericParamDefKind::Const { .. } => None,
|
||||
GenericParamDefKind::Const { .. } => Some(Set1::Empty),
|
||||
GenericParamDefKind::Lifetime => None,
|
||||
})
|
||||
.collect()
|
||||
})
|
||||
|
@ -2569,15 +2569,14 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> {
|
|||
}
|
||||
GenericArg::Const(ct) => {
|
||||
self.visit_anon_const(&ct.value);
|
||||
i += 1;
|
||||
}
|
||||
GenericArg::Infer(inf) => {
|
||||
self.visit_id(inf.hir_id);
|
||||
if inf.kind.is_type() {
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Hack: when resolving the type `XX` in binding like `dyn
|
||||
// Foo<'b, Item = XX>`, the current object-lifetime default
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue