March 02, 2017 [Issue 17240] New: mutable/shared @property both match in typeof | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17240 Issue ID: 17240 Summary: mutable/shared @property both match in typeof Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: blocker Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: john.loughran.colvin@gmail.com struct S { import std.stdio; int b() @property { return 0; } int b() @property const { return 0; } int b() @property shared { return 0; } } alias T = typeof(S.b); /d746/f453.d(9): Error: f453.S.b called with argument types () matches both: /d746/f453.d(4): f453.S.b() and: /d746/f453.d(6): f453.S.b() The problem doesn't occur without @property, whether or not () are included in the typeof expression. The clash is to do with shared. const/shared clash, as do mutable/shared, but mutable/const is fine. In order to add typeof(AggregateType.member) support to std.typecons.Proxy (with knockon improvements to a few other things in std.typecons), either this bug or https://issues.dlang.org/show_bug.cgi?id=17239 needs resolving. -- |
Copyright © 1999-2021 by the D Language Foundation