[Issue 17240] New: mutable/shared @property both match in typeof
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Thu Mar  2 05:55:28 PST 2017
    
    
  
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 at puremagic.com
          Reporter: john.loughran.colvin at 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.
--
    
    
More information about the Digitalmars-d-bugs
mailing list