[Issue 23589] New: [REG2.095] Purity check special case gives circular reference error.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Dec 28 20:27:57 UTC 2022
https://issues.dlang.org/show_bug.cgi?id=23589
Issue ID: 23589
Summary: [REG2.095] Purity check special case gives circular
reference error.
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: regression
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: johanengelen at weka.io
The testcase below compiles with 2.094, but fails compilation with 2.095.
The regression is introduced by this PR:
https://github.com/dlang/dmd/pull/12023 (introduces size check for the special
case of zero-sized struct). Removing the size check
(`sd.determineSize(v.loc);`) "fixes" the regression.
Testcase:
```
struct TemplStr(string Description_) {}
template A() {
bool member;
alias THIS = typeof(this);
static THIS staticInstance;
static asSize()
{
return staticInstance.member;
}
}
template B() {
enum cols = columns();
enum cols_two = cols;
TemplStr!(cols_two) tstr;
}
struct S
{
mixin A;
mixin B;
static string columns() {
auto dummy = &asSize;
return "as";
}
}
```
--
More information about the Digitalmars-d-bugs
mailing list