[Issue 21195] Delegate to method created without a `this` in certain contexts
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Thu Aug 27 09:16:56 UTC 2020
    
    
  
https://issues.dlang.org/show_bug.cgi?id=21195
--- Comment #3 from Tomer Filiba (weka) <tomer at weka.io> ---
Simen, it's not the type of `S.func` or whatever, it's the & operator -- it
should fail when trying to create a delegate to a method without a `this`
The actual production code had a copy-paste error, it was more of the
following:
```
struct Client {
   __gshared static PoolDict(int, Client, 1024) dict;
    static Client* getClient(int key) {
        if (key !in dict) {
             dict[key] = Client(...);
             registerTimer(5.minutes, &closeInactive);
        }
    }
    void closeInactive() {
        // a happy little method
    }
}
```
if should have been 
```
             registerTimer(5.minutes, &dict[key].closeInactive);
```
don't worry about dict, it has a pool for the values, so it will not move
objects. taking pointers to it is safe.
my point is that 
```
&closeInactive
```
shouldn't compile, because this expression cannot be a (correct) type
--
    
    
More information about the Digitalmars-d-bugs
mailing list