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.
I cannot reproduce this. Compiling the code with git master yields a successful compilation.