diff --git a/tests/ui/inference/issue-80409.rs b/tests/ui/inference/issue-80409.rs new file mode 100644 index 0000000000000..80cad6dfc46e4 --- /dev/null +++ b/tests/ui/inference/issue-80409.rs @@ -0,0 +1,36 @@ +// check-pass + +#![allow(unreachable_code, unused)] + +use std::marker::PhantomData; + +struct FsmBuilder { + _fsm: PhantomData, +} + +impl FsmBuilder { + fn state(&mut self) -> FsmStateBuilder { + todo!() + } +} + +struct FsmStateBuilder { + _state: PhantomData, +} + +impl FsmStateBuilder { + fn on_entry)>(&self, _action: TAction) {} +} + +trait Fsm { + type Context; +} + +struct StateContext<'a, TFsm: Fsm> { + context: &'a mut TFsm::Context, +} + +fn main() { + let mut builder: FsmBuilder = todo!(); + builder.state().on_entry(|_| {}); +}