https://issues.dlang.org/show_bug.cgi?id=3720
--- Comment #11 from Mike Franklin <[email protected]> --- A little more information about this issue and the test case: struct S { int a; void fun() { this.a = 1; } } void main() { auto fp = &S.fun; fp(); } There may be 2 schools of thought on how this should behave: (1) `auto fp = &S.fun;` is trying to get the address of a non-static function through a type. Instead, it can be argued that the programmer should have written `S s; auto fp = &s.fun;` Notice the lower-case `s`. (2) `&S.fun` should return a `void function(S* s)` instead of a `void function()` If (1) were implemented the compiler would emit an error at `auto fp = &S.fun;` because it is trying get the address of a non-static `fun` through the type `S`. If (2) were implemented the compiler would emit an error at `fp();` because a context pointer was not supplied as an argument. In other words it should be `fp(&s)`. --
