fix --emit=mir: StructCtors are functions

This commit is contained in:
Ralf Jung 2019-02-03 14:09:56 +01:00
parent fed4c5d9e1
commit 27ce224a8f
2 changed files with 5 additions and 2 deletions

View File

@ -375,6 +375,10 @@ impl<'hir> Map<'hir> {
let def_id = self.local_def_id(item.id);
Some(Def::Const(def_id))
}
Node::StructCtor(variant) => {
let def_id = self.local_def_id(variant.id());
Some(Def::Fn(def_id))
}
Node::Field(_) |
Node::Expr(_) |
Node::Stmt(_) |
@ -383,7 +387,6 @@ impl<'hir> Map<'hir> {
Node::TraitRef(_) |
Node::Pat(_) |
Node::Binding(_) |
Node::StructCtor(_) |
Node::Lifetime(_) |
Node::Visibility(_) |
Node::Block(_) |

View File

@ -594,7 +594,7 @@ fn write_mir_sig(
) -> io::Result<()> {
use rustc::hir::def::Def;
trace!("write_mir_sig: {:?} {:?}", src, tcx.hir().get_if_local(src.def_id()));
trace!("write_mir_sig: {:?}", src.instance);
let descr = tcx.describe_def(src.def_id()).unwrap();
match (descr, src.promoted) {
(_, Some(i)) => write!(w, "{:?} in", i)?,