提交 4dc02874 编写于 作者: O Oliver Scherer

Explain why we can encounter a `Goto` terminator that we want to promote

上级 f7629eff
......@@ -332,7 +332,13 @@ fn interior_base<'a, 'tcx>(place: &'a mut Place<'tcx>)
let operand = Operand::Copy(promoted_place(ty, span));
mem::replace(&mut args[index], operand)
}
// already promoted out
// We expected a `TerminatorKind::Call` for which we'd like to promote an
// argument. Since `qualify_consts` saw a `TerminatorKind::Call` here, but
// we are seeing a `Goto`, that means that the `promote_temps` method
// already promoted this call away entirely. This case occurs when calling
// a function requiring a constant argument and as that constant value
// providing a value whose computation contains another call to a function
// requiring a constant argument.
TerminatorKind::Goto { .. } => return,
_ => bug!()
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册