<div dir="ltr">Hi,<div><br></div><div>I'm trying to reproduce a minimal viable demo of a problem compiling code using the LLVM backend that has an interface with a parameter that is a nested procedure variable, but I'm not having any luck. I've noticed the difference between my test programs and the large project where I'm seeing the issue reliably is that when compiling the larger project, the line "<span style="color:rgb(0,0,0);font-family:monospace">Parsing internally generated code</span>" (I think that's error string 3319/"Parsen intern erzeugten") gets output with what looks like interface method shims for an object -- methods prefixed "WRPR_".</div><div><br></div><div> I can't get my test programs to do the same even when trying the same compiler arguments and directives, so I've tried to make the objects more complicated -- adding variables to the class, lots of procedures, multiple interfaces, implementations that are actually abstract... nothing's triggered it.</div><div><br></div><div>The gist of my test code is something like this:</div><div><br></div><div>TNestedProc = procedure is nested;</div><div><br></div><div>IInf = interface[...]</div><div>    procedure InfMethod(AParam: TNestedProc);</div><div>end;</div><div><br></div><div>TObj = class(..., IInf)</div><div><br></div><div>My question is: what are some triggers for internal code generation?</div><div><br></div><div>As to the actual error that I'm trying to put together a useful bug report for, the code that is generated internally (in the shim) gets the error "<span style="font-family:monospace;font-weight:bold;color:rgb(255,84,84)">Error: </span><span style="font-family:monospace;color:rgb(0,0,0)">(4030) Can't assign local procedure/function to procedure variable</span>", it's in the same unit as both a {$modeswitch nestedprocvars} and a bunch of other code that throw around nested procedure variables.</div><div><br></div><div>Thanks</div><div>Kieran</div><div><br></div><div><br></div></div>