This code is rejected
```
module m;
struct Tuple(T)
{
T t;
}
auto tuple(T)(T t)
{
return Tuple!T(t);
}
void test(T)(m.Tuple!T t) // here
{
}
void main()
{
test(tuple(0.1));
}
```
because IFTI fails to infer `T`, but if you remove the `m` of the `test` parameter, it works.
Test case is simplified from https://forum.dlang.org/post/[email protected] but
that should be the same problem.
Comment #1 by b2.temp — 2024-05-29T12:30:04Z
The error message is
> Error: undefined identifier `T`
It's probable that IFTI actually works but when the time comes to run the semantics of
`m.Tuple!T`, the scope used is wrong.
Comment #2 by robert.schadek — 2024-12-13T19:35:29Z