January 15, 2022 [Issue 22676] New: fullyQualifiedName fails to compile with 2.098.1 relese -- there is some issue with call to __traits(isScalar .. | ||||
---|---|---|---|---|
| ||||
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@puremagic.com Reporter: puneet@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; } -- |
Copyright © 1999-2021 by the D Language Foundation