dotnet/roslyn
Confusing error when assigning result of ref readonly-returning method to a ref local
开放
#28,653 创建于 2018年7月18日
Area-CompilersBugConcept-Diagnostic Clarityhelp wanted
仓库指标
- 星标
- (20,414 个星标)
- PR 合并指标
- (平均合并 6天 17小时) (30 天内合并 256 个 PR)
描述
Version Used: 2.8.2; master from 14 July 2018 (c4189de08b943f87d9f03d45ef01e615800e359d)
Steps to Reproduce:
Try to assign the result of a ref readonly-returning method to a non-readonly ref local:
class C
{
void M()
{
ref int x = ref Bar();
}
ref readonly int Bar() => throw null;
}
Actual Behavior:
error CS8329: Cannot use method 'C.Bar()' as a ref or out value because it is a readonly variable
I think this is not a good error message because:
- It's not correct: method is not a variable.
- It does not explain well what the error is and how to fix it.