https://issues.dlang.org/show_bug.cgi?id=3720
--- Comment #27 from Bolpat <[email protected]> --- Given ```d struct T { ref int memFunc(return ref int i) return @safe immutable { return i; } } ``` I guess the only reasonable thing `typeof(&T.memFunc)` could be is: ```d ref int function(return ref immutable T, return ref int i) @safe ``` We can argue about whether the `T` parameter must be `ref`, but unless we have a mechanism to express “bind by mutable reference irrespective of value category” (this is how member functions bind the `this` object) as a parameter storage class, the only option is `ref`. Copy isn’t an option, not all types are copyable. `in` isn’t an option because it makes mutable objects `const`. DMD’s answer for `typeof(&T.memFunc)` is nonsense: ```d ref int function(return ref int i) immutable return @safe ``` Both, `immutable` and `return` make no sense on a function pointer type and do not even parse. --
