dlang / ddox

Advanced D documentation engine
MIT License
62 stars 20 forks source link

Errors of missing `std.conv` imports #222

Open zorael opened 4 years ago

zorael commented 4 years ago

Manjaro/Arch x86_64, dmd 2.091.0, ddox 0.16.13 fetched and built via dub.

My project uses x:ddoxTool "scod" for generating documentation and it stopped working at some point recently, perhaps with updates to diet-ng.

[...]
ddox 0.16.13: building configuration "library"...
/usr/include/dlang/dmd/std/range/primitives.d(175,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead.
/usr/include/dlang/dmd/std/range/primitives.d(177,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead.
/usr/include/dlang/dmd/std/range/primitives.d(175,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead.
/usr/include/dlang/dmd/std/range/primitives.d(177,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead.
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/entities.d(553,15): Deprecation: Cannot use alias this to partially initialize variable tp.typeName of type CachedString. Use tp.typeName.str
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/entities.d(620,157): Deprecation: Cannot use alias this to partially initialize variable ret.arrayLength of type CachedString. Use ret.arrayL
ength.str
Compiling Diet HTML template ddox.module.dt...
ddox.module.dt(9,44): Error: no property to for type Result, perhaps import std.conv; is needed?
../../.dub/packages/diet-ng-1.7.1/diet-ng/source/diet/html.d(221,8): Error: template instance ddox.htmlgenerator.generateModulePage!(OutputStream).generateModulePage.exec!(StreamOutputRange!(
OutputStream, 256LU)) error instantiating
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(365,7):        instantiated from here: compileHTMLDietFileString!(StreamOutputRange!(OutputStream, 256LU))
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(184,22):        instantiated from here: generateModulePage!(OutputStream)
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(183,69):        instantiated from here: __lambda4!(OutputStream)
Compiling Diet HTML template ddox.module.dt...
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(183,18): Error: function ddox.htmlgenerator.generateHtmlDocs.writeHashedFile(GenericPath!(PosixPathFormat) filename, scope vo
id delegate(OutputStream) del) is not callable using argument types (GenericPath!(PosixPathFormat), void)
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(183,18):        cannot pass argument __lambda4 of type void to parameter scope void delegate(OutputStream) del
Compiling Diet HTML template ddox.docpage.dt...
ddox.inc.composite.dt(11,34): Error: no property to for type int, perhaps import std.conv; is needed?
ddox.inc.variable.dt(32,33): Error: template instance to!string template to is not defined
ddox.inc.variable.dt(34,105): Error: no property to for type Result, perhaps import std.conv; is needed?
ddox.docpage.dt(62,79): Error: no property to for type Result, perhaps import std.conv; is needed?
ddox.docpage.dt(68,80): Error: no property to for type Result, perhaps import std.conv; is needed?
ddox.docpage.dt(74,79): Error: no property to for type Result, perhaps import std.conv; is needed?
ddox.docpage.dt(80,75): Error: no property to for type Result, perhaps import std.conv; is needed?
ddox.docpage.dt(100,80): Error: no property to for type Result, perhaps import std.conv; is needed?
ddox.docpage.dt(105,79): Error: no property to for type Result, perhaps import std.conv; is needed?
ddox.docpage.dt(110,75): Error: no property to for type Result, perhaps import std.conv; is needed?
../../.dub/packages/diet-ng-1.7.1/diet-ng/source/diet/html.d(221,8): Error: template instance ddox.htmlgenerator.generateDeclPage!(OutputStream).generateDeclPage.exec!(StreamOutputRange!(Outp
utStream, 256LU)) error instantiating
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(392,7):        instantiated from here: compileHTMLDietFileString!(StreamOutputRange!(OutputStream, 256LU))
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(191,21):        instantiated from here: generateDeclPage!(OutputStream)
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(190,64):        instantiated from here: __lambda3!(OutputStream)
Compiling Diet HTML template ddox.docpage.dt...
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(190,19): Error: function ddox.htmlgenerator.generateHtmlDocs.writeHashedFile(GenericPath!(PosixPathFormat) filename, scope vo
id delegate(OutputStream) del) is not callable using argument types (GenericPath!(PosixPathFormat), void)
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(190,19):        cannot pass argument __lambda3 of type void to parameter scope void delegate(OutputStream) del
Compiling Diet HTML template ddox.overview.dt...
Compiling Diet HTML template ddox.overview.dt...
ddox.module.dt(9,44): Error: no property to for type Result, perhaps import std.conv; is needed?
../../.dub/packages/diet-ng-1.7.1/diet-ng/source/diet/html.d(221,8): Error: template instance ddox.htmlgenerator.generateModulePage!(InterfaceProxy!(OutputStream)).generateModulePage.exec!(St
reamOutputRange!(InterfaceProxy!(OutputStream), 256LU)) error instantiating
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlgenerator.d(365,7):        instantiated from here: compileHTMLDietFileString!(StreamOutputRange!(InterfaceProxy!(OutputStream), 256LU))
../../.dub/packages/ddox-0.16.13/ddox/source/ddox/htmlserver.d(88,21):        instantiated from here: generateModulePage!(InterfaceProxy!(OutputStream))
ddox.inc.composite.dt(11,34): Error: no property to for type int, perhaps import std.conv; is needed?
ddox.inc.variable.dt(32,33): Error: template instance to!string template to is not defined
ddox.inc.variable.dt(34,105): Error: no property to for type Result, perhaps import std.conv; is needed?
/usr/bin/dmd failed with exit code 1.

Not sure whose bug this is bug filing it here since building ddox is what throws the error.

Changing the std.conv import in source/ddox/api.d to a public one works around the issue, but likely isn't ideal.

diff --git a/source/ddox/api.d b/source/ddox/api.d
index 04e9efc..f48561b 100644
--- a/source/ddox/api.d
+++ b/source/ddox/api.d
@@ -12,7 +12,7 @@ public import ddox.ddoc;

 import std.algorithm;
 import std.array;
-import std.conv;
+public import std.conv;
 import std.format;
 import std.string;
 import std.range : isOutputRange;