[Issue 22676] New: fullyQualifiedName fails to compile with 2.098.1 relese -- there is some issue with call to __traits(isScalar ..
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Jan 15 12:25:00 UTC 2022
https://issues.dlang.org/show_bug.cgi?id=22676
Issue ID: 22676
Summary: fullyQualifiedName fails to compile with 2.098.1
relese -- there is some issue with call to
__traits(isScalar ..
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: regression
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: puneet at coverify.org
The following reduced code fails to compile with the release 2.098.1. Earlier
versions did not have this issue.
//
import std.traits: fullyQualifiedName;
class foo_base { }
class bar_base {
static T instance(T)() {
return new T(fullyQualifiedName!T);
}
}
class typed_foo(T): foo_base {
static class bar: bar_base {
this(string) { }
foo_base _inst;
}
}
class foo (T): typed_foo!T {
static auto _bar_inst() { return bar.instance!bar; }
static private ref auto _inst() { return _bar_inst._inst; }
mixin (attr_string!(attr_access!(__traits(getAttributes, _inst))));
}
template attr_access(A...) { enum attr_access = ""; }
template attr_string(string A) { enum string attr_string = ""; }
alias foo_frop = foo!frop;
class frop { alias type_id = registry!frop; }
template registry(T) { enum string FOO = fullyQualifiedName!T; }
--
More information about the Digitalmars-d-bugs
mailing list