[Issue 23241] __traits getMember breaks compilation when hit an alias
https://issues.dlang.org/show_bug.cgi?id=23241 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @maxhaton created dlang/dmd pull request #14298 "Fix Issue 23241 - Consider types with no symbol (e.g. int) to have no…" fixing this issue: - Fix Issue 23241 - Consider types with no symbol (e.g. int) to have no attributes https://github.com/dlang/dmd/pull/14298 --
[Issue 23240] dmd compiles 'ok' class invalid to interface if class contains abstract members
https://issues.dlang.org/show_bug.cgi?id=23240 --- Comment #3 from Alexey --- looks like this bug is related to those bugs https://issues.dlang.org/show_bug.cgi?id=21321 https://issues.dlang.org/show_bug.cgi?id=21184 basically, I've simply searched by 'abstract word' and there are looks like more related bugs. --
[Issue 23242] InputRangeObject derived from RandomAccessInfinite is not a random-access range
https://issues.dlang.org/show_bug.cgi?id=23242 --- Comment #1 from Paul Backus --- Blocked by issue 23243. InputRangeObject's .empty property must be a member function in order to implement the InputRange interface, but isInfinite requires .empty to be a manifest constant. --
[Issue 23243] std.range.isInfinite should accept ranges with non-static empty methods
https://issues.dlang.org/show_bug.cgi?id=23243 Paul Backus changed: What|Removed |Added Blocks||23242 Referenced Issues: https://issues.dlang.org/show_bug.cgi?id=23242 [Issue 23242] InputRangeObject derived from RandomAccessInfinite is not a random-access range --
[Issue 23242] InputRangeObject derived from RandomAccessInfinite is not a random-access range
https://issues.dlang.org/show_bug.cgi?id=23242 Paul Backus changed: What|Removed |Added Depends on||23243 Referenced Issues: https://issues.dlang.org/show_bug.cgi?id=23243 [Issue 23243] std.range.isInfinite should accept ranges with non-static empty methods --
[Issue 23243] New: std.range.isInfinite should accept ranges with non-static empty methods
https://issues.dlang.org/show_bug.cgi?id=23243 Issue ID: 23243 Summary: std.range.isInfinite should accept ranges with non-static empty methods Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: snarwin+bugzi...@gmail.com As of DMD 2.100.0, the following program fails to compile: --- import std.range.primitives; struct R { int front() { return 42; } bool empty() { return false; } void popFront() {} } static assert(isInputRange!R); // ok enum e = R().empty; // ok static assert(isInfinite!R); // fails --- Since R is an input range whose .empty property evaluates to false at compile time, it should be accepted as an infinite range. This issue blocks issue 23242. --
[Issue 23242] New: InputRangeObject derived from RandomAccessInfinite is not a random-access range
https://issues.dlang.org/show_bug.cgi?id=23242 Issue ID: 23242 Summary: InputRangeObject derived from RandomAccessInfinite is not a random-access range Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: snarwin+bugzi...@gmail.com As of DMD 2.100.0, the following program fails to compile: --- import std.range; void main() { auto r = repeat(0).inputRangeObject; static assert(is(typeof(r) : RandomAccessInfinite!int)); // ok static assert(isRandomAccessRange!(typeof(r))); // fails } --- This happens because the InputRangeObject r does not have an .empty property that evaluates to false at compile time, as required by std.range.primitives.isInfinite. See also issue 22608. --
[Issue 23241] New: __traits getMember breaks compilation when hit an alias
https://issues.dlang.org/show_bug.cgi?id=23241 Issue ID: 23241 Summary: __traits getMember breaks compilation when hit an alias Product: D Version: D2 Hardware: x86_64 OS: All Status: NEW Severity: blocker Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ryuukk@gmail.com ``` onlineapp.d(12): Error: first argument is not a symbol ``` ``` module a; import std; @("hi") void main() { alias THIS_MODULE = a; static foreach (member; __traits(allMembers, THIS_MODULE)) { writeln("member: ", member); static foreach (attr; __traits(getAttributes, __traits(getMember, THIS_MODULE, member))) { writeln("\tattribute: ", attr); } } } enum :int { A, B, C } // commenting this out fixes it alias MyEnum = int; ``` Expected behavior: It should ignore either ignore the alias and compile, or support the alias --
[Issue 21432] [CTFE] Cannot declare enum array in function scope
https://issues.dlang.org/show_bug.cgi?id=21432 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Dlang Bot --- dlang/dmd pull request #14296 "fix Issue 21104 - certain array operations fail during CTFE when used to initialize a static array" was merged into master: - e3525ec96a3b66ec420d2fc2bd7f40721fea2a34 by Iain Buclaw: fix Issue 21432 - [CTFE] Cannot declare enum array in function scope https://github.com/dlang/dmd/pull/14296 --
[Issue 21432] [CTFE] Cannot declare enum array in function scope
https://issues.dlang.org/show_bug.cgi?id=21432 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @ibuclaw created dlang/dmd pull request #14296 "fix Issue 21104 - certain array operations fail during CTFE when used to initialize a static array" fixing this issue: - fix Issue 21432 - [CTFE] Cannot declare enum array in function scope https://github.com/dlang/dmd/pull/14296 --
[Issue 6528] Private module functions optimizations
https://issues.dlang.org/show_bug.cgi?id=6528 Iain Buclaw changed: What|Removed |Added Status|NEW |RESOLVED CC||ibuc...@gdcproject.org Resolution|--- |WONTFIX --- Comment #5 from Iain Buclaw --- This is best handled at link or LTO time, as because of templates (called from outside the module compilation), we have no idea whether a private function really is used or not. --
[Issue 21956] ice on foreach over an AA of noreturn
https://issues.dlang.org/show_bug.cgi?id=21956 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #6 from Dlang Bot --- dlang/dmd pull request #14274 "Fix Issue 21956 - ice on foreach over an AA of noreturn" was merged into master: - 52bb3f701e18dd393065aa3184f1b8ef4bf5690a by RazvanN7: Fix Issue 21956 - ice on foreach over an AA of noreturn https://github.com/dlang/dmd/pull/14274 --
[Issue 22390] Compiler crash when iterating empty array of bottom types
https://issues.dlang.org/show_bug.cgi?id=22390 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #2 from Dlang Bot --- @RazvanN7 created dlang/dmd pull request #14294 "Fix Issue 22390 - Compiler crash when iterating empty array of bottom types" fixing this issue: - Fix Issue 22390 - Compiler crash when iterating empty array of bottom types https://github.com/dlang/dmd/pull/14294 --
[Issue 22637] std.conv `to!double` and `parse!double` dont throw on under/overflow
https://issues.dlang.org/show_bug.cgi?id=22637 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Dlang Bot --- dlang/phobos pull request #8502 "Fix Issue 22637 - std.conv `to!double` and `parse!double` dont throw on under/overflow" was merged into master: - 1c3903c2e644d55913708b6867e33aab1a076ac9 by Grim Maple: Fix Issue 22637 - std.conv `to!double` and `parse!double` dont throw on under/overflow This happened because `parse` enforced on real. And provided number actually fits real. Changed to enforce on `Target` type instead https://github.com/dlang/phobos/pull/8502 --