Thread overview | |||||
---|---|---|---|---|---|
|
March 14, 2021 Forbidden file names? | ||||
---|---|---|---|---|
| ||||
Hello -- Apologies if this is answered somewhere in the documentation. I was trying out the sample code on the dlang.org home page. When I got to the "Sort an Array at Compile-Time" example, I saved it on my machine as sort.d. When I tried to build sort.d, the compile failed. But when I renamed sort.d to anything else (e.g., array.d), the compilation was fine. I am wondering if this is expected. Thanks! Terminal output below explaining the above. ~Brian /home/brian/d $ cat sort.d void main() { import std.algorithm, std.conv, std.stdio; "Starting program".writeln; // Sort a constant declaration at Compile-Time enum a = [ 3, 1, 2, 4, 0 ]; static immutable b = sort(a); // Print the result _during_ compilation pragma(msg, text("Finished compilation: ", b)); } /home/brian/d $ dmd sort.d sort.d(9): Error: function expected before `()`, not `module sort` of type `void` sort.d(12): while evaluating `pragma(msg, text(T...)(T args) if (T.length > 0)("Finished compilation: ", b))` /home/brian/d $ mv sort.d array.d /home/brian/d $ dmd array.d Finished compilation: immutable(SortedRange!(int[], "a < b", SortedRangeOptions.assumeSorted))([0, 1, 2, 3, 4]) |
March 14, 2021 Re: Forbidden file names? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brian | On Sunday, 14 March 2021 at 20:47:00 UTC, Brian wrote: > Hello -- > > Apologies if this is answered somewhere in the documentation. > I was trying out the sample code on the dlang.org home page. > > When I got to the "Sort an Array at Compile-Time" example, I saved it on my machine as sort.d. When I tried to build sort.d, the compile failed. But when I renamed sort.d to anything else (e.g., array.d), the compilation was fine. [...] > /home/brian/d $ dmd sort.d > sort.d(9): Error: function expected before `()`, not `module sort` of type `void` This is the error you get when you try to call a function that has the same name as the current module. The best way to fix it is to rename the module, but if you can't, you can use an alias to disambiguate: alias sort = std.algorithm.sort; |
March 14, 2021 Re: Forbidden file names? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Paul Backus | On Sunday, 14 March 2021 at 20:57:39 UTC, Paul Backus wrote:
>
> This is the error you get when you try to call a function that has the same name as the current module. The best way to fix it is to rename the module, but if you can't, you can use an alias to disambiguate:
>
> alias sort = std.algorithm.sort;
Thanks.
|
Copyright © 1999-2021 by the D Language Foundation