[Issue 14361] DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 --- Comment #7 from Ketmar Dark --- and space to. and absense of chars altogether. to be honest, everything is just a "0" or "1". so i wonder why you are using such unnecessary complex things as high-level languages instead of entering binary codes with switches, as real men do. --
[Issue 14361] DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 --- Comment #6 from deadalnix --- (In reply to Ketmar Dark from comment #5) > and it always was. it's the indentifier which denotes type. Well then 3 always was as well. It is the "indentifier" which denotes value. Good to see you agree with me. --
[Issue 14361] DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 --- Comment #5 from Ketmar Dark --- and it always was. it's the indentifier which denotes type. --
[Issue 14361] DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 deadalnix changed: What|Removed |Added CC||deadal...@gmail.com --- Comment #4 from deadalnix --- alias foo = int; Is int an identifier now ? --
[Issue 14363] DMD should compile SDC test0165.d
https://issues.dlang.org/show_bug.cgi?id=14363 --- Comment #3 from Kenji Hara --- (In reply to Shammah Chancellor from comment #2) > Your code has a bug? > > return new B(5); > > Should be: > > return new B(); Yes. Sorry. > With that, your example compiles and works just fine on SDC. Hmm, interesting. SDC might use a thunk to get valid context pointer for base classes from the instantiated context. But it would need some runtime cost and additional vtbl entry. I don't have any knowledge about the SDC backend, but the ABI around nested classes would be different from dmd's. --
[Issue 14359] DMD does not compile SDC test0154.d
https://issues.dlang.org/show_bug.cgi?id=14359 --- Comment #1 from Kenji Hara --- How SDC works for following codes? auto foo(T u, T)() { return typeof(u).stringof; } pragma(msg, foo(1)); // T is deduced to int ... it's reasonable. pragma(msg, foo(1, int));// typeof(1) is int by default, so it might be accepted pragma(msg, foo(1, long)); // typeof(u) will be long, or conflict happens? pragma(msg, foo(1, double)); // typeof(u) will be double, or conflict happens? pragma(msg, foo(1, string)); // definitely conflicts --
[Issue 14363] DMD should compile SDC test0165.d
https://issues.dlang.org/show_bug.cgi?id=14363 --- Comment #2 from Shammah Chancellor --- Your code has a bug? return new B(5); Should be: return new B(); With that, your example compiles and works just fine on SDC. (In reply to Kenji Hara from comment #1) > I'm not sure why SDC accepts the code. > > The following reduced case is correctly rejected by dmd, because ba.foo() > won't work expectedly. Maybe SDC generates wrong code? > > void main() > { > uint x = 7; > > class A > { > auto foo() > { > return x; > } > } > > auto makeB(uint y) > { > class B : A > { > auto bar() > { > return foo() + y; > } > } > > return new B(5); > } > > A a = new A(); > assert(a.foo() == 7); > > auto b = makeB(3); > assert(b.bar() == 10); > > A ba = b; > assert(ba.foo() == 7); > } --
[Issue 14357] Match on specType does not check the conflict with already deduced template arguments
https://issues.dlang.org/show_bug.cgi?id=14357 Kenji Hara changed: What|Removed |Added Keywords||pull Hardware|x86 |All Version|unspecified |D2 Summary|SDC test0128.d compiles,|Match on specType does not |but should not |check the conflict with ||already deduced template ||arguments OS|Mac OS X|All --- Comment #1 from Kenji Hara --- https://github.com/D-Programming-Language/dmd/pull/4530 --
[Issue 14366] DMD should not compile SDC test0174.d
https://issues.dlang.org/show_bug.cgi?id=14366 Kenji Hara changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #3 from Kenji Hara --- (In reply to Shammah Chancellor from comment #2) > What? No warning is printed. Why aren't warnings printed by default -- > that seems bad. It's current dmd behavior. So this issue is a duplication of enhancement 14367. *** This issue has been marked as a duplicate of issue 14367 *** --
[Issue 14367] Print warnings by default
https://issues.dlang.org/show_bug.cgi?id=14367 --- Comment #2 from Kenji Hara --- *** Issue 14366 has been marked as a duplicate of this issue. *** --
[Issue 14365] DMD should error or warn on SDC test0173.d
https://issues.dlang.org/show_bug.cgi?id=14365 Kenji Hara changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #4 from Kenji Hara --- DMD actually report "statement is not reachable" warning with -w switch. So this is an invalid issue. --
[Issue 14363] DMD should compile SDC test0165.d
https://issues.dlang.org/show_bug.cgi?id=14363 --- Comment #1 from Kenji Hara --- I'm not sure why SDC accepts the code. The following reduced case is correctly rejected by dmd, because ba.foo() won't work expectedly. Maybe SDC generates wrong code? void main() { uint x = 7; class A { auto foo() { return x; } } auto makeB(uint y) { class B : A { auto bar() { return foo() + y; } } return new B(5); } A a = new A(); assert(a.foo() == 7); auto b = makeB(3); assert(b.bar() == 10); A ba = b; assert(ba.foo() == 7); } --
[Issue 14371] [CTFE] Binary assignment expression makes wrong result in compile-time
https://issues.dlang.org/show_bug.cgi?id=14371 Kenji Hara changed: What|Removed |Added Keywords||pull --- Comment #1 from Kenji Hara --- https://github.com/D-Programming-Language/dmd/pull/4529 --
[Issue 14372] New: Heisenbug on FreeBSD: std/socket.d(523) Assertion failure during unittests
https://issues.dlang.org/show_bug.cgi?id=14372 Issue ID: 14372 Summary: Heisenbug on FreeBSD: std/socket.d(523) Assertion failure during unittests Product: D Version: D2 Hardware: x86 OS: FreeBSD Status: NEW Severity: normal Priority: P1 Component: Phobos Assignee: nob...@puremagic.com Reporter: bugzi...@digitalmars.com 0.008s PASS release32 std.algorithm.sorting 0.004s PASS release32 std.algorithm.searching --- std.socket(521) test fails depending on environment --- (core.exception.AssertError@std/socket.d(523): Assertion failure 0x8d3fa70 <_init+13583836> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x8d1ac86 <_init+13432818> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x8d1a7c2 <_init+13431598> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x8d1ac55 <_init+13432769> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x8d3f998 <_init+13583620> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x804c568 <_init+4308> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x9613231 at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x9609a6d at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x9609a30 at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x96099c8 at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x804ca8c <_init+5624> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x804c327 <_init+3731> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x804c298 <_init+3588> at /home/braddr/sandbox/at-client/pull-1480933-FreeBSD_32/phobos/generated/freebsd/release/32/unittest/test_runner 0x2 at ???) No service for epmap. --
[Issue 14371] [CTFE] Binary assignment expression makes wrong result in compile-time
https://issues.dlang.org/show_bug.cgi?id=14371 Kenji Hara changed: What|Removed |Added Keywords||CTFE --
[Issue 14371] New: [CTFE] Binary assignment expression makes wrong result in compile-time
https://issues.dlang.org/show_bug.cgi?id=14371 Issue ID: 14371 Summary: [CTFE] Binary assignment expression makes wrong result in compile-time Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: wrong-code Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: k.hara...@gmail.com Test case: int ctfetest() { int x; ++(x += 1); return x == 2; } void main() { enum v = ctfetest(); assert(v == ctfetest()); // should be ok, but doesn't } --
[Issue 14370] std.utf.toUTF8 has an incorrect contract
https://issues.dlang.org/show_bug.cgi?id=14370 briancsch...@gmail.com changed: What|Removed |Added Hardware|x86_64 |All Summary|writeln() crashes on|std.utf.toUTF8 has an |invalid dchar |incorrect contract OS|Windows |All --
[Issue 14370] writeln() crashes on invalid dchar
https://issues.dlang.org/show_bug.cgi?id=14370 briancsch...@gmail.com changed: What|Removed |Added CC||briancsch...@gmail.com --- Comment #1 from briancsch...@gmail.com --- There is a contract in toUTF8 that checks the return value of isValidDchar, but isValidDchar will return true for some code points that toUTF8 does not handle. --
[Issue 14370] New: writeln() crashes on invalid dchar
https://issues.dlang.org/show_bug.cgi?id=14370 Issue ID: 14370 Summary: writeln() crashes on invalid dchar Product: D Version: D2 Hardware: x86_64 OS: Windows Status: NEW Severity: normal Priority: P1 Component: Phobos Assignee: nob...@puremagic.com Reporter: erikas.aub...@gmail.com The following code seems to cause, depending on system and implementation, either a segfault, sigabrt, or "HLT instruction" exception. import std.stdio; import std.encoding; void main() { writeln(INVALID_SEQUENCE); } --
[Issue 14330] Wrong DWARF type of dynamic array variable
https://issues.dlang.org/show_bug.cgi?id=14330 Martin Krejcirik changed: What|Removed |Added Keywords||pull Summary|Global variable causes |Wrong DWARF type of dynamic |wrong DWARF type of local |array variable |variable| --- Comment #1 from Martin Krejcirik --- https://github.com/D-Programming-Language/dmd/pull/4526 --
[Issue 14364] DMD should compile (correctly) SDC test0167.d
https://issues.dlang.org/show_bug.cgi?id=14364 Ketmar Dark changed: What|Removed |Added CC||ket...@ketmar.no-ip.org --- Comment #4 from Ketmar Dark --- actually, compiler must warn about sequence point error. but DMD is for smarts, so it does it's best to carefully hide such errors from programmer. --
[Issue 14367] Print warnings by default
https://issues.dlang.org/show_bug.cgi?id=14367 bearophile_h...@eml.cc changed: What|Removed |Added CC||bearophile_h...@eml.cc --- Comment #1 from bearophile_h...@eml.cc --- See also Issue 13040 , Issue 10147 --
[Issue 6107] ICE(expression.c) when a non-template member named '__ctor' exists in a struct, and the constructor is attempted to be invoked.
https://issues.dlang.org/show_bug.cgi?id=6107 --- Comment #5 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/1a40e089de40933bcadb6352f163e6e470286e3f Fix line number of diagnostic error message for issue 6107 --
[Issue 14369] New: ParameterDefaultValue does not work with convertion using a non-ctfe able opCall / ctor
https://issues.dlang.org/show_bug.cgi?id=14369 Issue ID: 14369 Summary: ParameterDefaultValue does not work with convertion using a non-ctfe able opCall / ctor Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: pro.mathias.l...@gmail.com Currently, the following code will fail to compile: void main() { import std.datetime, std.traits; interface IKeysAPI { string create(SysTime expiry = 0); } alias ParamDefaults = ParameterDefaultValueTuple!(IKeysAPI.create); } IIUC, when getting a value using `__parameters`, the value is expected to be of the type of the argument, and thus is converted as soon as anyone tries to read it. I marked it as a DMD bug because I believe it should not try to do the convertion, but rather expose more informations than just a typetuple and let the library's contributor decide. Ultimately, what I'll be aiming for is something like a struct with: - 'Type' => alias to the type of the parameter. - 'identifier' => Well you get it. - 'value' => Default value of the parameter. Either a TypeTuple with one or 0 entry, or another brighter solution. This should take into account that default value can be C function calls (like `time_t currTime = time(null)`), which is why this field could be an alias. --
[Issue 6766] Forward reference error for default struct/class arguments
https://issues.dlang.org/show_bug.cgi?id=6766 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 340] [Tracker] Forward reference bugs and other order-of-declaration issues
https://issues.dlang.org/show_bug.cgi?id=340 Issue 340 depends on issue 6766, which changed state. Issue 6766 Summary: Forward reference error for default struct/class arguments https://issues.dlang.org/show_bug.cgi?id=6766 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 11166] Forward reference error when alias of template instance is private
https://issues.dlang.org/show_bug.cgi?id=11166 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 11166] Forward reference error when alias of template instance is private
https://issues.dlang.org/show_bug.cgi?id=11166 --- Comment #3 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/5949d0efb22fd09561d392ce392ce68a385d1044 fix Issue 11166 - Forward reference error when alias of template instance is private --
[Issue 6766] Forward reference error for default struct/class arguments
https://issues.dlang.org/show_bug.cgi?id=6766 --- Comment #5 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/a7bdba47f09f7dba2fbbc6a3d91d8ba110e7 fix Issue 6766 - Forward reference error for default struct/class arguments https://github.com/D-Programming-Language/dmd/commit/b675901392ad8e6873e47f77172e6e36f49aa351 Merge pull request #4457 from 9rnsr/fix6766 Issue 6766 - Forward reference error for default struct/class arguments --
[Issue 14368] New: stdio.rawRead underperforms stdio
https://issues.dlang.org/show_bug.cgi?id=14368 Issue ID: 14368 Summary: stdio.rawRead underperforms stdio Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: Phobos Assignee: nob...@puremagic.com Reporter: cooper.charle...@gmail.com Performance of std.stdio.rawRead is 50-75% slower than core.std.stdio.fread in tight loop. The performance of a thin wrapper should match C stdio performance or users will be unhappy. // stdioperf.d struct mystruct { long data[4]; } void main() { enum bool CSTDIO = false; mystruct foo; static if (CSTDIO) { import core.stdc.stdio : stdin,fread; while (0 != fread(&foo, foo.sizeof, 1, stdin)) {} } else { static import std.stdio; while (0 != std.stdio.stdin.rawRead((&foo)[0..1]).length) {} } } //EOF $ dmd --version DMD64 D Compiler v2.067.0 Copyright (c) 1999-2014 by Digital Mars written by Walter Bright $ dmd -O -inline -release -noboundscheck stdioperf.d $ time dd if=/dev/zero bs=1M count=8192 | ./stdioperf 8192+0 records in 8192+0 records out 8589934592 bytes (8.6 GB) copied, 7.0038 s, 1.2 GB/s real0m7.005s user0m5.792s sys0m6.924s $ gdc --version gdc (Debian 4.9.2-10) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gdc -O3 -fno-bounds-check -fno-assert -fno-invariants -fno-in -fno-out stdioperf.d $ time dd if=/dev/zero bs=1M count=8192 | ./a.out 8192+0 records in 8192+0 records out 8589934592 bytes (8.6 GB) copied, 6.07485 s, 1.4 GB/s real0m6.076s user0m4.908s sys0m6.684s With CSTDIO = true (performance is same no matter the compiler): $ gdc -O3 stdioperf.d $ time dd if=/dev/zero bs=1M count=8192 | ./a.out 8192+0 records in 8192+0 records out 8589934592 bytes (8.6 GB) copied, 4.18047 s, 2.1 GB/s real0m4.182s user0m2.888s sys0m3.888s Profiling suggests the overhead comes from the compiler failing to inline calls to std.exception.enforce, calling errnoEnforce even when fread's return indicates success, and from buffer slicing overhead. The following patch to d/4.9/std/stdio.d (front end D 2.065) confirms this, reducing the performance gap to ~2% (gdc -O2). It also gets rid of the undocumented null return value: 609c609,611 < enforce(buffer.length, "rawRead must take a non-empty buffer"); --- > if (!buffer.length) { > enforce(buffer.length, "rawRead must take a non-empty > buffer"); > } 625,626c627,631 < errnoEnforce(!error); < return result ? buffer[0 .. result] : null; --- > if (result < buffer.length) { > errnoEnforce(!error); > return buffer[0..result]; > } > return buffer; $ gdc -O3 stdioperf.d mystdio.d $ time dd if=/dev/zero bs=1M count=8192 | ./a.out 8192+0 records in 8192+0 records out 8589934592 bytes (8.6 GB) copied, 4.26723 s, 2.0 GB/s real0m4.269s user0m2.960s sys0m3.788s The patch to dmd 2.067 phobos is similar except the line numbers are different: 715c715,717 < enforce(buffer.length, "rawRead must take a non-empty buffer"); --- > if (!buffer.length) { > enforce(false, "rawRead must take a non-empty buffer"); > } 733,734c735,739 < errnoEnforce(!error); < return result ? buffer[0 .. result] : null; --- > if (result < buffer.length) { > errnoEnforce(!error); > return buffer[0..result]; > } > return buffer; I also suggest that stdio.File.rawRead also update the documentation of rawRead so that it includes an example of idiomatic usage: while (1) if (0 == rawRead(...).length) break; Charles --
[Issue 14368] stdio.rawRead underperforms stdio
https://issues.dlang.org/show_bug.cgi?id=14368 Charles changed: What|Removed |Added CC||cooper.charle...@gmail.com --
[Issue 14220] Bad codegen for optimized std.conv.text in combination with concatenation
https://issues.dlang.org/show_bug.cgi?id=14220 --- Comment #8 from github-bugzi...@puremagic.com --- Commit pushed to stable at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/f37749d65561cd019ae9b54ed8ee3474a54a6a6e Merge pull request #4451 from WalterBright/fix14220 fix Issue 14220 - Bad codegen for optimized std.conv.text in combination... --
[Issue 11548] ParameterDefaultValueTuple fails to compile when passed in a function containing a parameter named "args".
https://issues.dlang.org/show_bug.cgi?id=11548 Mathias LANG changed: What|Removed |Added Status|NEW |RESOLVED CC||pro.mathias.l...@gmail.com Resolution|--- |FIXED --- Comment #1 from Mathias LANG --- Fixed in Phobos P.R. #2624 --
[Issue 14353] SDC test0104.d fails under DMD
https://issues.dlang.org/show_bug.cgi?id=14353 --- Comment #5 from ag0ae...@gmail.com --- (In reply to Shammah Chancellor from comment #3) > I'm not so sure this is desirable. What if there add as a ref return. What > does &t.foo give then? You mean something like the following? struct T { int i = 42; ref int foo() {return i;} } void main() { T t; auto dg = &t.foo; auto i = &t.foo(); } Here dg is a delegate of the method foo and i is a pointer to the ref-returned field i. The spec says this [1]: "In most places, getter property functions are called immediately. One exceptional case is the address operator." "Even if the given operand is a property function, the address operator returns the address of the property function rather than the address of its return value." Now foo is no @property, but the spec says that "[if] a function call does not take any arguments syntactically, it is callable without parenthesis, like a getter property functions." So it's reasonable that the same rules apply. [1] http://dlang.org/function.html#property-functions --
[Issue 14364] DMD should compile (correctly) SDC test0167.d
https://issues.dlang.org/show_bug.cgi?id=14364 --- Comment #3 from ag0ae...@gmail.com --- (In reply to Shammah Chancellor from comment #2) > So should this not compile? Reading that spec page further: > If the compiler can determine that the result of an expression is illegally > dependent on the order of evaluation, it can issue an error (but is not > required to). The ability to detect these kinds of errors is a quality of > implementation issue. So, compilers are encouraged to reject such code, but they can also accept it and evaluate the sides of the assignment in either order. > Isn't this at least a DLang Spec problem? Feel free to file an enhancement request to specify one true order of evaluation for AssignExpression. --
[Issue 14364] DMD should compile (correctly) SDC test0167.d
https://issues.dlang.org/show_bug.cgi?id=14364 --- Comment #2 from Shammah Chancellor --- So should this not compile? Isn't this at least a DLang Spec problem? --
[Issue 14358] SDC test0134.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14358 Iain Buclaw changed: What|Removed |Added CC||ibuc...@gdcproject.org --- Comment #1 from Iain Buclaw --- I suspect the same would be true for void __postblit() too. --
[Issue 14364] DMD should compile (correctly) SDC test0167.d
https://issues.dlang.org/show_bug.cgi?id=14364 ag0ae...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from ag0ae...@gmail.com --- (In reply to Shammah Chancellor from comment #0) > int ret = 5; > ret += ((ret++ == 5) ? (ret += 3) : (ret -= 11)) + ret; > assert(ret == 23); To arrive at 23 I guess sdc see these values: 5 + 6 + 3 + 9 = 23 ret += ((ret++ == 5) ? (ret += 3) : (ret -= 11)) + ret; That is, sdc takes the value of the lhs before evaluating the rhs. dmd arrives at 27 = 9 + 6 + 3 + 9, meaning it evaluates the rhs before taking the value of the lhs. The spec has something to say about that[1]: > The following binary expressions are evaluated in an implementation-defined > order: > > AssignExpression, function arguments > > It is an error to depend on order of evaluation when it is not specified. For > example, the following are illegal: > > i = i++; So, both sdc and dmd are right and the test case is "illegal". Closing as invalid. [1] http://dlang.org/expression.html --
[Issue 14353] SDC test0104.d fails under DMD
https://issues.dlang.org/show_bug.cgi?id=14353 --- Comment #4 from Ketmar Dark --- i believe that it will be a bug in the D code, as there is no variable to ref. at least it should be a bug. ;-) --
[Issue 14367] New: Print warnings by default
https://issues.dlang.org/show_bug.cgi?id=14367 Issue ID: 14367 Summary: Print warnings by default Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: enhancement Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com DMD currently does not print warning by default. This should be changed so that people are notified of deprecated features during compilation and can start fixing them. It will come as a surprise when these features are finally removed. There should instead be a silent flag on the compiler to suppress warnings. --
[Issue 14353] SDC test0104.d fails under DMD
https://issues.dlang.org/show_bug.cgi?id=14353 --- Comment #3 from Shammah Chancellor --- I'm not so sure this is desirable. What if there add as a ref return. What does &t.foo give then? --
[Issue 14365] DMD should error or warn on SDC test0173.d
https://issues.dlang.org/show_bug.cgi?id=14365 --- Comment #3 from Ketmar Dark --- i believe that this is a historic thingy. almost any C compiler is silent by default, do did DMD. i think it worth ER, as there is no same reason to not print warnings by default. --
[Issue 14361] DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 Ketmar Dark changed: What|Removed |Added CC||ket...@ketmar.no-ip.org --- Comment #3 from Ketmar Dark --- dunno, i can't see any reason to duplicate `enum` with `alias`. `alias` meant for aliasing *identifiers*, not literals. i.e. enum a = 42; alias b = a; is working. --
[Issue 14364] DMD should compile (correctly) SDC test0167.d
https://issues.dlang.org/show_bug.cgi?id=14364 ag0ae...@gmail.com changed: What|Removed |Added Keywords||wrong-code CC||ag0ae...@gmail.com --
[Issue 14361] DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 --- Comment #2 from Shammah Chancellor --- Seems like an arbitrary restriction. Any reason for that? I will file an issue against SDC. --
[Issue 14361] DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 --- Comment #1 from Ketmar Dark --- specs says that literals cannot be aliased[1]. [1] http://dlang.org/declaration.html#AliasDeclaration --
[Issue 14363] DMD should compile SDC test0165.d
https://issues.dlang.org/show_bug.cgi?id=14363 ag0ae...@gmail.com changed: What|Removed |Added Keywords||rejects-valid CC||ag0ae...@gmail.com --
[Issue 14361] DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 ag0ae...@gmail.com changed: What|Removed |Added Keywords||rejects-valid CC||ag0ae...@gmail.com --
[Issue 14362] DMD should compile SDC test0159.d
https://issues.dlang.org/show_bug.cgi?id=14362 ag0ae...@gmail.com changed: What|Removed |Added Keywords||rejects-valid CC||ag0ae...@gmail.com --
[Issue 14359] DMD does not compile SDC test0154.d
https://issues.dlang.org/show_bug.cgi?id=14359 ag0ae...@gmail.com changed: What|Removed |Added Keywords||rejects-valid CC||ag0ae...@gmail.com --
[Issue 14358] SDC test0134.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14358 ag0ae...@gmail.com changed: What|Removed |Added Keywords||accepts-invalid CC||ag0ae...@gmail.com --
[Issue 14357] SDC test0128.d compiles, but should not
https://issues.dlang.org/show_bug.cgi?id=14357 ag0ae...@gmail.com changed: What|Removed |Added Keywords||accepts-invalid CC||ag0ae...@gmail.com --
[Issue 14365] DMD should error or warn on SDC test0173.d
https://issues.dlang.org/show_bug.cgi?id=14365 --- Comment #2 from Shammah Chancellor --- Why are warnings not being printed by default? --
[Issue 14355] SDC test0107.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14355 Shammah Chancellor changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --
[Issue 14354] SDC test0106.d compiles, but should not
https://issues.dlang.org/show_bug.cgi?id=14354 Shammah Chancellor changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --
[Issue 14365] DMD should error or warn on SDC test0173.d
https://issues.dlang.org/show_bug.cgi?id=14365 Ketmar Dark changed: What|Removed |Added CC||ket...@ketmar.no-ip.org --- Comment #1 from Ketmar Dark --- it does: z00.d(9): Warning: statement is not reachable --
[Issue 14360] DMD should compile SDC test0156.d
https://issues.dlang.org/show_bug.cgi?id=14360 --- Comment #3 from ag0ae...@gmail.com --- (In reply to Shammah Chancellor from comment #2) > Has the spec changed with regards to this? I don't know if the spec maybe changed at some point. Could be that a naked function/method symbol without parentheses was treated as a function pointer / delegate in the distant past. I think they've been calls for at least a couple of years, though. > There is not "Symbol.Function" going on in this test. It doesn't matter if it's "Symbol.Function" or just "Function". --
[Issue 14354] SDC test0106.d compiles, but should not
https://issues.dlang.org/show_bug.cgi?id=14354 --- Comment #2 from Shammah Chancellor --- Thanks. Didn't notice that -- I was going through all the failure cases a bit quickly. Will file a bug against SDC. --
[Issue 14355] SDC test0107.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14355 Ketmar Dark changed: What|Removed |Added CC||ket...@ketmar.no-ip.org --- Comment #1 from Ketmar Dark --- same for this: two different functions with different signatures, so SDC is wrong here. --
[Issue 14354] SDC test0106.d compiles, but should not
https://issues.dlang.org/show_bug.cgi?id=14354 Ketmar Dark changed: What|Removed |Added CC||ket...@ketmar.no-ip.org --- Comment #1 from Ketmar Dark --- but there is no error, as `foo()` and `foo(int)` are different functions with different signatures. --
[Issue 14366] DMD should not compile SDC test0174.d
https://issues.dlang.org/show_bug.cgi?id=14366 --- Comment #2 from Shammah Chancellor --- What? No warning is printed. Why aren't warnings printed by default -- that seems bad. --
[Issue 14366] DMD should not compile SDC test0174.d
https://issues.dlang.org/show_bug.cgi?id=14366 ag0ae...@gmail.com changed: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #1 from ag0ae...@gmail.com --- This is a warning at the moment. --
[Issue 14360] DMD should compile SDC test0156.d
https://issues.dlang.org/show_bug.cgi?id=14360 --- Comment #2 from Shammah Chancellor --- (In reply to ag0aep6g from comment #1) > As in issue 14353, dmd needs the ampersand: `return &bar;`. Without it, it's > treated as a parentheses-less call. Has the spec changed with regards to this? There is not "Symbol.Function" going on in this test. --
[Issue 14360] DMD should compile SDC test0156.d
https://issues.dlang.org/show_bug.cgi?id=14360 ag0ae...@gmail.com changed: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #1 from ag0ae...@gmail.com --- As in issue 14353, dmd needs the ampersand: `return &bar;`. Without it, it's treated as a parentheses-less call. --
[Issue 14366] New: DMD should not compile SDC test0174.d
https://issues.dlang.org/show_bug.cgi?id=14366 Issue ID: 14366 Summary: DMD should not compile SDC test0174.d Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com ``` > ../bin/sdc test0174.d case 1: ^~~ test0174.d:9: error: Fallthrough is disabled, use goto case. ``` ```test0174.d //T compiles:no //T has-passed:yes // Must use goto case void main() { switch(0) { case 0: int i; case 1: default: } } ``` --
[Issue 14365] New: DMD should error or warn on SDC test0173.d
https://issues.dlang.org/show_bug.cgi?id=14365 Issue ID: 14365 Summary: DMD should error or warn on SDC test0173.d Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com ``` > ../bin/sdc test0173.d return 7; ^ test0173.d:13: error: Unreachable statement. ``` ```test0173.d //T compiles:no //T has-passed:yes // Unreachable statement int main() { int i = 5; if (i) { return 3; } else { return 5; } return 7; } ``` --
[Issue 14356] SDC test00120.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14356 Shammah Chancellor changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --
[Issue 14356] SDC test00120.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14356 --- Comment #2 from Shammah Chancellor --- Ah, my mistake. Thank you. I will mark this as invalid. (In reply to ag0aep6g from comment #1) > dmd prints a deprecation message: > > test0120.d(14): Deprecation: implicitly overriding base class method > test0120.A.foo with test0120.B.foo deprecated; add 'override' attribute > --
[Issue 14364] DMD should compile (correctly) SDC test0167.d
https://issues.dlang.org/show_bug.cgi?id=14364 Shammah Chancellor changed: What|Removed |Added Summary|DMD should compile SDC |DMD should compile |test0167.d |(correctly) SDC test0167.d --
[Issue 14364] New: DMD should compile SDC test0167.d
https://issues.dlang.org/show_bug.cgi?id=14364 Issue ID: 14364 Summary: DMD should compile SDC test0167.d Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com ``` > rdmd test0167.d core.exception.AssertError@test0167.d(9): Assertion failure ``` ```test0167.d //T compiles:yes //T has-passed:yes //T retval:53 // Tests TernaryOperator int main() { int ret = 5; ret += ((ret++ == 5) ? (ret += 3) : (ret -= 11)) + ret; assert(ret == 23); ret += ((ret-- == 22) ? (ret += 5) : (ret -= 7)) + ret; assert(ret == 53); return ret; } ``` --
[Issue 14363] New: DMD should compile SDC test0165.d
https://issues.dlang.org/show_bug.cgi?id=14363 Issue ID: 14363 Summary: DMD should compile SDC test0165.d Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com ``` > rdmd test0165.d test0165.d(22): Error: class test0165.voldemort.basilisk.GinnyWeasley is nested within basilisk, but super class MarvoloRiddle is nested within voldemort ``` ```test0165.d //T compiles:yes //T has-passed:yes //T retval:41 // voldemort class with inheritance and 2 different contexts. auto voldemort() { uint a = 7; class MarvoloRiddle { uint b; this(uint b) { this.b = b + a++; } auto foo() { return a + b; } } auto basilisk(uint c) { class GinnyWeasley : MarvoloRiddle { this(uint b) { a += c++; this.b = b + a++; } auto bar() { return foo() + a + c; } } return new GinnyWeasley(5); } return basilisk(3); } auto buzz(V)(V v) { return v.bar(); } int main() { auto v = voldemort(); return buzz(v); } ``` --
[Issue 14356] SDC test00120.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14356 ag0ae...@gmail.com changed: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #1 from ag0ae...@gmail.com --- dmd prints a deprecation message: test0120.d(14): Deprecation: implicitly overriding base class method test0120.A.foo with test0120.B.foo deprecated; add 'override' attribute --
[Issue 14362] New: DMD should compile SDC test0159.d
https://issues.dlang.org/show_bug.cgi?id=14362 Issue ID: 14362 Summary: DMD should compile SDC test0159.d Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com ``` > rdmd test0159.d test0159.d(11): Error: template instance foo!true does not match template declaration foo(alias T U, T)() test0159.d(11): Error: template instance foo!10 does not match template declaration foo(alias T U, T)() test0159.d(11): Error: template instance foo!(5) does not match template declaration foo(alias T U, T)() ``` ```test0159.d //T compiles:yes //T has-passed:yes //T retval:25 // template typed alias parameter (value) auto foo(alias T U, T)() { return cast(int) (U + T.sizeof); } int main() { return foo!true() + foo!10() + foo!I(); } enum I = 5; ``` --
[Issue 14361] New: DMD should compile SDC test0158.d
https://issues.dlang.org/show_bug.cgi?id=14361 Issue ID: 14361 Summary: DMD should compile SDC test0158.d Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com ``` > dmd test0158.d test0158.d(7): Error: basic type expected, not 42 test0158.d(7): Error: semicolon expected to close alias declaration test0158.d(7): Error: declaration expected, not '42' ``` ```test0158.d //T compiles:yes //T has-passed:yes //T retval:42 // alias of type and values alias b = a; alias c = 42; alias d = c; alias e = b; b main() { a b = c; e f = b; return f; } alias a = uint; ``` --
[Issue 14360] New: DMD should compile SDC test0156.d
https://issues.dlang.org/show_bug.cgi?id=14360 Issue ID: 14360 Summary: DMD should compile SDC test0156.d Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: enhancement Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com ``` > rdmd test0156.d test0156.d(19): Error: function expected before (), not foo() of type int ``` ```test0156.d //T compiles:yes //T has-passed:yes //T retval:36 // Closure chaining int main() { int a = 11; auto foo() { int b = 25; auto bar() { return a + b; } return bar; } return foo()(); } ``` --
[Issue 14359] New: DMD does not compile SDC test0154.d
https://issues.dlang.org/show_bug.cgi?id=14359 Issue ID: 14359 Summary: DMD does not compile SDC test0154.d Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com ``` > dmd test0154.d test0154.d(6): Error: undefined identifier T ``` ```test0154.d //T compiles:yes //T has-passed:yes //T retval:25 // template value parameter auto foo(T U, T)() { return cast(int) (U + T.sizeof); } int main() { return foo!true() + foo!10() + foo!I(); } enum I = 5; ``` --
[Issue 14353] SDC test0104.d fails under DMD
https://issues.dlang.org/show_bug.cgi?id=14353 --- Comment #2 from Shammah Chancellor --- Definitely possible. I will file an SDC bug if this turns out to be the case. --
[Issue 14353] SDC test0104.d fails under DMD
https://issues.dlang.org/show_bug.cgi?id=14353 ag0ae...@gmail.com changed: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #1 from ag0ae...@gmail.com --- I think this is invalid. `t.add` and `s.add` are parentheses-less calls. So the error about T.add not being callable "using argument types ()" is correct. To get a delegate, add '&': struct S { int i; T t; auto add(int a) { t.i = a + i; return &t.add; /* ! */ } } struct T { int i; int add(int a) { return i + a; } } int main() { S s; s.i = s.t.i = 1; auto dg1 = &s.add; /* ! */ auto dg2 = dg1(34); return dg2(7); } --
[Issue 14358] New: SDC test0134.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14358 Issue ID: 14358 Summary: SDC test0134.d compiles but should not Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com SDC errors as follows: ``` ../bin/sdc test0134.d void __dtor() {} ^~ test0134.d:6: error: __dtor is a reserved name ``` DMD compiles incorrectly: ```test0134.d //T compiles:no //T has-passed:yes // Forbiden method name. struct Foo { void __dtor() {} } void main() {} ``` --
[Issue 14357] SDC test0128.d compiles, but should not
https://issues.dlang.org/show_bug.cgi?id=14357 Shammah Chancellor changed: What|Removed |Added Summary|SC test0128.d compiles, but |SDC test0128.d compiles, |should not |but should not --
[Issue 14357] New: SC test0128.d compiles, but should not
https://issues.dlang.org/show_bug.cgi?id=14357 Issue ID: 14357 Summary: SC test0128.d compiles, but should not Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com SDC errors as follows: ``` > ../bin/sdc test0128.d return Qux!(float**, int*); ^~~~ test0128.d:10: error: No match ``` DMD compiles this erroneously: ```test0128.d //T compiles:no //T has-passed:yes // Test invalid specialisation. template Qux(T : U*, U : V*, V) { enum Qux = T.sizeof + V.sizeof; } int main() { return Qux!(float**, int*); } ``` --
[Issue 14356] SDC test00120.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14356 Shammah Chancellor changed: What|Removed |Added CC||shammah.chancel...@gmail.co ||m --
[Issue 14356] New: SDC test00120.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14356 Issue ID: 14356 Summary: SDC test00120.d compiles but should not Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com SDC fails as such: ``` > ../bin/sdc test0120.d void foo(int a) {} ^~ test0120.d:14: error: foo overrides a base class method but is not marked override ``` DMD compiles this: ```test0120.d //T compiles:no //T has-passed:yes // Test implicit override error. int main() { return 0; } class A { void foo(int a) {} } class B : A { void foo(int a) {} } ``` --
[Issue 14355] SDC test0107.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14355 Shammah Chancellor changed: What|Removed |Added CC||shammah.chancel...@gmail.co ||m --
[Issue 14355] New: SDC test0107.d compiles but should not
https://issues.dlang.org/show_bug.cgi?id=14355 Issue ID: 14355 Summary: SDC test0107.d compiles but should not Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com SDC fails as follows: ``` > ../bin/sdc test0107.d int foo(int i) { return i; } ^~~~ test0107.d:12: error: Poisoned Line 1 expanded from mixin : mixin(foo()); ^ test0107.d line 12 ``` while DMD erroneously compiles it. ```test0107.d //T compiles:no //T has-passed:yes int main() { return 42; } string foo() { return "int foo(int i) { return i; }"; } mixin(foo()); ``` --
[Issue 14352] SDC test0075.d fails under against DMD
https://issues.dlang.org/show_bug.cgi?id=14352 ag0ae...@gmail.com changed: What|Removed |Added Keywords||wrong-code Hardware|x86 |All OS|Mac OS X|All --
[Issue 14354] SDC test0106.d compiles, but should not
https://issues.dlang.org/show_bug.cgi?id=14354 Shammah Chancellor changed: What|Removed |Added CC||shammah.chancel...@gmail.co ||m --
[Issue 14354] New: SDC test0106.d compiles, but should not
https://issues.dlang.org/show_bug.cgi?id=14354 Issue ID: 14354 Summary: SDC test0106.d compiles, but should not Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com SDC errors: ``` > ../bin/sdc test0106.d int foo(int i) { return i; } ^~~ test0106.d:13: error: Already defined ``` while DMD incorrectly compiles the source and runs. ```test0106.d //T compiles:no //T has-passed:yes int main() { return foo(); } int foo() { return 3; } static if(foo() == 3) { int foo(int i) { return i; } } ``` --
[Issue 14352] SDC test0075.d fails under against DMD
https://issues.dlang.org/show_bug.cgi?id=14352 ag0ae...@gmail.com changed: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #1 from ag0ae...@gmail.com --- Slight reduction of transmogrify(0): void main() { int[] output; switch (0) { case 0: output ~= 0; goto case; goto case; case 1: output ~= 1; goto case; case 2: output ~= 2; break; case 3: output ~= 3; break; default: assert(false); } import std.stdio; writeln(output); } Should print "[0, 1, 2]". Actually prints "[0, 1, 3]", meaning that it jumps from case 1 to case 3. Having more than one `goto case;` seems to confuse dmd. --
[Issue 14353] SDC test0104.d fails under DMD
https://issues.dlang.org/show_bug.cgi?id=14353 Shammah Chancellor changed: What|Removed |Added CC||shammah.chancel...@gmail.co ||m --
[Issue 14353] New: SDC test0104.d fails under DMD
https://issues.dlang.org/show_bug.cgi?id=14353 Issue ID: 14353 Summary: SDC test0104.d fails under DMD Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com DMD fails with: test0104.d(12): Error: function test0104.T.add (int a) is not callable using argument types () ```test0104.d //T compiles:yes //T has-passed:yes //T retval:42 // Test creation of delegates from member function. struct S { int i; T t; auto add(int a) { t.i = a + i; return t.add; } } struct T { int i; int add(int a) { return i + a; } } int main() { S s; s.i = s.t.i = 1; auto dg1 = s.add; auto dg2 = dg1(34); return dg2(7); } ``` --
[Issue 14352] New: SDC test0075.d fails under against DMD
https://issues.dlang.org/show_bug.cgi?id=14352 Issue ID: 14352 Summary: SDC test0075.d fails under against DMD Product: D Version: unspecified Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: shammah.chancel...@gmail.com This compiles and works properly under SDC. However, when ran against DMD the assertions fail. It appears as if "goto case" is not working correctly in DMD based on what I can see. ```test0075.d //T compiles:yes //T has-passed:yes //T retval:0 //? desc:Test goto case multiple cases in case list. int transmogrify(int input) { int output = 0; switch (input) { case 0, 1: if (input == 0) goto case; else output++; goto case; case 2: output += 5; goto case; case 3: output += 5; break; case 4, 5, 6: goto default; case 7: case 8: output += 20; break; default: return -1; } return output; } int main() { bool defaultRan = false; switch(0) { default: defaultRan = true; break; case 0: goto default; } assert(defaultRan); assert(transmogrify(0) == 10); assert(transmogrify(1) == 11); assert(transmogrify(2) == 10); assert(transmogrify(3) == 5); assert(transmogrify(7) == 20); assert(transmogrify(8) == 20); assert(transmogrify(4) == -1); assert(transmogrify(5) == -1); assert(transmogrify(6) == -1); assert(transmogrify(128) == -1); return 0; } ``` --
[Issue 13742] undefined reference to __coverage
https://issues.dlang.org/show_bug.cgi?id=13742 j...@red.email.ne.jp changed: What|Removed |Added CC||j...@red.email.ne.jp --- Comment #2 from j...@red.email.ne.jp --- I hit this on Windows. Reduced test case is here. COMMAND: dmd -cov -g -c test.d f.d dmd -cov -g -main test.obj f.obj OUTPUT: Error 42: Symbol Undefined ___coverage --- errorlevel 1 SOURCE FILES: f.d - import std.algorithm; void func(alias pred)() { int[] range; range.find!pred(0); } - test.d - import f; enum mypred = (int a, int b)=>false; //bool mypred(int a, int b) { return false; } -- WORK AROUND void test() { func!mypred(); } - --