dotnet/roslyn
Confusing error when assigning result of ref readonly-returning method to a ref local
Aperta
#28.653 aperta il 18 lug 2018
Area-CompilersBugConcept-Diagnostic Clarityhelp wanted
Metriche repository
- Star
- (20.414 stelle)
- Metriche merge PR
- (Merge medio 6g 17h) (256 PR mergiate in 30 g)
Descrizione
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.