strangely silent compiler

Eugene Wissner belka at caraus.de
Wed Aug 21 13:56:51 UTC 2019


On Wednesday, 21 August 2019 at 13:41:20 UTC, Orfeo wrote:
> I've:
> ```
> module anomalo.util;
>
> // Foo doesn't exist  anywhere!!!!!
>
> Foo toJsJson(string type, Args...)(string id, Args args) {
>    static if (type == "int" || type == "outcome") {
>       return Json(["id" : Json(id), "type" : Json(type), 
> "value" : Json(0),]);
>    } else {
>       static assert(0, "invalid type");
>    }
> }
>
> ```
>
> So:
> ```
> $ dub build
> ```
> No error!
>
> ```
> $ /usr/bin/dmd -lib -ofliba.a -debug -g -w -I. 
> src/anomalo/util.d -vcolumns
> ```
>
> No error!
>
> Here [github](https://github.com/o3o/anomalo) my project.
>
> Thank you

toJsJson is a template. Templates are evaluated first when they 
are instantiated. Compiler doesn't give an error because it 
doesn't compile toJsJson, because you don't instantiate it 
anywhere.


More information about the Digitalmars-d-learn mailing list