[Issue 23241] __traits getMember breaks compilation when hit an alias

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
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

--