lifetime issue: Bug or not?

Meta jared771 at
Sun Nov 24 09:05:14 UTC 2019

On Saturday, 23 November 2019 at 04:20:33 UTC, Steven 
Schveighoffer wrote:
> On 11/22/19 10:46 PM, Meta wrote:
>> Are you passing the -dip1000 switch to the compiler? I 
>> reproduced this with a toy version of your code, but the 
>> compile error goes away when I pass the -dip1000 switch to the 
>> compiler.
> I am not. But I admit that I didn't have the return attribute 
> at first. I added it to see if it helped (it didn't).
> Can you post the toy version? Might be reasonable for a bug 
> report. I couldn't figure out a minimal case.
> -Steve

It's just your code (@safe added for good measure):


struct SQLStatement
     string s;

struct X
    SQLStatement foo(int id)
       auto stmt = SQLStatement("`foo`"); // table
       return stmt.where("`id` = ?", id);

ref SQLStatement where(T)(return ref SQLStatement stmt, string 
clause, T val)
     return stmt;

void main()
     X x;;

This code fails to compile unless dip1000 is turned on.

More information about the Digitalmars-d mailing list