fn in_call(
cx: &ConstCx<'_, 'tcx>,
callee: &Operand<'tcx>,
- _args: &[Operand<'tcx>],
+ args: &[Operand<'tcx>],
_return_ty: Ty<'tcx>,
) -> bool {
if cx.mode == Mode::Fn {
}
}
- // FIXME(eddyb) do we need "not promotable" in anything
- // other than `Mode::Fn` by any chance?
-
- false
+ Self::in_operand(cx, callee) || args.iter().any(|arg| Self::in_operand(cx, arg))
}
}
--- /dev/null
+// compile-pass
+// note this was only reproducible with lib crates
+// compile-flags: --crate-type=lib
+
+pub struct Hz;
+
+impl Hz {
+ pub const fn num(&self) -> u32 {
+ 42
+ }
+ pub const fn normalized(&self) -> Hz {
+ Hz
+ }
+
+ pub const fn as_u32(&self) -> u32 {
+ self.normalized().num() // this used to promote the `self.normalized()`
+ }
+}