Thread overview
[Issue 19999] compile time logic (pragma, static if) in sub eponymous templates are ignored
Jun 23, 2019
David Bennett
Jun 25, 2019
David Bennett
Dec 17, 2022
Iain Buclaw
June 23, 2019
https://issues.dlang.org/show_bug.cgi?id=19999

--- Comment #1 from David Bennett <davidbennett@bravevision.com> ---
Here is a reduced case, it seems like the algorithm dies at the static if making the inner template not match, in-turn preventing the pragma and static if from running.

For example if you remove the static if in this example the pragma will run.

```
template fun3()
{
    template fun3(T)
    {
        pragma(msg, "test pragma");
        static if(true)
            void fun3(T t){}
    }
}

void main()
{
    fun3!()(1);
}
```

--
June 25, 2019
https://issues.dlang.org/show_bug.cgi?id=19999

David Bennett <davidbennett@bravevision.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|minor                       |normal

--- Comment #2 from David Bennett <davidbennett@bravevision.com> ---
I forgot to add the current error output for the above example:

onlineapp.d(13): Error: template onlineapp.fun3!().fun3 cannot deduce function
from argument types !()(int), candidates are:
onlineapp.d(3):        onlineapp.fun3!().fun3(T)

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=19999

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P3

--
December 13
https://issues.dlang.org/show_bug.cgi?id=19999

--- Comment #3 from dlangBugzillaToGithub <robert.schadek@posteo.de> ---
THIS ISSUE HAS BEEN MOVED TO GITHUB

https://github.com/dlang/dmd/issues/19593

DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB

--