Handle generic parameters.
This commit is contained in:
parent
cdf78073c5
commit
05812df603
25 changed files with 171 additions and 224 deletions
|
@ -1321,7 +1321,7 @@ impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx> {
|
|||
}),
|
||||
}
|
||||
}
|
||||
hir::TyKind::OpaqueDef(item_id, _) => {
|
||||
hir::TyKind::OpaqueDef(item_id, _, _) => {
|
||||
let item = self.tcx.hir().item(item_id);
|
||||
self.nest_typeck_results(item_id.def_id, |v| v.visit_item(item));
|
||||
}
|
||||
|
|
|
@ -316,11 +316,7 @@ impl<'hir> Sig for hir::Ty<'hir> {
|
|||
let text = format!("[{}; {}]", nested_ty.text, expr);
|
||||
Ok(replace_text(nested_ty, text))
|
||||
}
|
||||
hir::TyKind::OpaqueDef(item_id, _) => {
|
||||
let item = scx.tcx.hir().item(item_id);
|
||||
item.make(offset, Some(item_id.hir_id()), scx)
|
||||
}
|
||||
hir::TyKind::ImplTraitInTrait(item_id) => {
|
||||
hir::TyKind::OpaqueDef(item_id, _, _) => {
|
||||
let item = scx.tcx.hir().item(item_id);
|
||||
item.make(offset, Some(item_id.hir_id()), scx)
|
||||
}
|
||||
|
@ -565,8 +561,13 @@ impl<'hir> Sig for hir::Item<'hir> {
|
|||
hir::ItemKind::ForeignMod { .. } => Err("extern mod"),
|
||||
hir::ItemKind::GlobalAsm(_) => Err("global asm"),
|
||||
hir::ItemKind::ExternCrate(_) => Err("extern crate"),
|
||||
hir::ItemKind::OpaqueTy(..) => Err("opaque type"),
|
||||
hir::ItemKind::ImplTraitPlaceholder(..) => Err("opaque type in trait"),
|
||||
hir::ItemKind::OpaqueTy(ref opaque) => {
|
||||
if opaque.in_trait {
|
||||
Err("opaque type in trait")
|
||||
} else {
|
||||
Err("opaque type")
|
||||
}
|
||||
}
|
||||
// FIXME should implement this (e.g., pub use).
|
||||
hir::ItemKind::Use(..) => Err("import"),
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue