D 弃用:返回此将转义对此参数的引用

D 弃用:返回此将转义对此参数的引用,d,D,在我们的代码库中将DMD更新为2.094.1时遇到此问题。它是关于什么以及如何修复它的 Deprecation: returning this escapes a reference to parameter this perhaps annotate the parameter with return 已发出警告,提示返回此信息行: public ref EventBuilder typeOne() { 该类型=1; 归还这个; } 此弃用警告与。在此处添加一个return:

在我们的代码库中将DMD更新为2.094.1时遇到此问题。它是关于什么以及如何修复它的

Deprecation: returning this escapes a reference to parameter this
       perhaps annotate the parameter with return
已发出警告,提示
返回此信息行:

public ref EventBuilder typeOne()
{
该类型=1;
归还这个;
}

此弃用警告与。在此处添加一个
return

public ref EventBuilder typeOne()返回
{
该类型=1;
归还这个;
}
引用DMD的变更日志:

DIP25从v2.067.0开始提供,首先作为自己的开关,最近在-preview=DIP25开关下提供。该功能现在已完全发挥作用,并已由DIP1000等公司建立

从这个版本开始,当-preview=dip25传递给编译器时会触发错误的代码也会触发不带-preview=dip25的弃用消息。开关的行为保持不变(仍将发出错误)

DIP25的目的是使@safe代码无法引用已破坏的对象。在实践中,可能需要函数和方法返回其参数的ref,以将方法或参数限定为return,正如编译器所暗示的那样

structfoo
{
int x;
//返回'this.x'将转义对参数'this'的引用,
//也许可以用“return”注释`
ref int method()/*return*/{return this.x;}
}
//返回'v'将转义对参数'v'的引用,
//也许可以用“return”注释`
ref int identity(/*return*/ref int v){return v;}
在这两种情况下,取消对返回注释的注释将安抚编译器