digitalmars.D.learn - strangely silent compiler
- Orfeo (25/25) Aug 21 2019 I've:
- Eugene Wissner (5/30) Aug 21 2019 toJsJson is a template. Templates are evaluated first when they
- Orfeo (18/56) Aug 21 2019 You're right: if I add (into util.d)
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
Aug 21 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 youtoJsJson 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.
Aug 21 2019
On Wednesday, 21 August 2019 at 13:56:51 UTC, Eugene Wissner wrote:On Wednesday, 21 August 2019 at 13:41:20 UTC, Orfeo wrote:You're right: if I add (into util.d) ``` unittest { import std.stdio; writeln(toJsJson!"int"("a")); } ``` voila' : ``` $ dub test src/anomalo/util.d(3,5): Error: undefined identifier Foo src/anomalo/util.d(13,26): Error: template instance `anomalo.util.toJsJson!"int"` error instantiating /usr/bin/dmd failed with exit code 1. ``` Thank youI'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 youtoJsJson 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.
Aug 21 2019