[Issue 21165] Spurious @nogc error with delegate taking `immutable size_t`
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Sun Aug 16 10:42:29 UTC 2020
    
    
  
https://issues.dlang.org/show_bug.cgi?id=21165
ag0aep6g <ag0aep6g at gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
                 CC|                            |ag0aep6g at gmail.com
--- Comment #1 from ag0aep6g <ag0aep6g at gmail.com> ---
(In reply to andy.pj.hanson from comment #0)
> 	f((int, immutable size_t) {
> 		int y = x;
> 	});
[...]
> * The delegate parameters are named, as in `f((int a, immutable size_t b) {`.
Note that the second parameter is actually already named in the non-working
version. It's called "size_t". What's missing is the type. By adding "b",
size_t gets recognized as the type as intended.
Slightly more reduced test case:
----
@nogc:
void main()
{
    int x = 0;
    f((int, b) {
        int y = x;
    });
}
void f(T)(scope void delegate(T, immutable int) @nogc cb) {}
----
Also happens with other qualifiers (const, shared) instead of immutable.
--
    
    
More information about the Digitalmars-d-bugs
mailing list