Closed hideintheclouds closed 1 month ago
I think that the dynamic and/or nameof() is the root-cause for the ArgumentNullException on InvocationDescription #56
When I was looking the upgrade to dotnet 8, I also encountered the warning for nameof
.
Basically, it should move up in the method as there is no use to get the SymbolInfo
for this call.
I never tried dynamic
with LivingDocumentation, so not sure if we can so anything useful.
nameof
detection is fixed with https://github.com/dendrodocs/dotnet-tool/pull/3
Consider the following code snippet:
Within C#, nameof is a contextual keyword. This means there is no way to distinguish the nameof keyword from a call to a method that happens to be named nameof.
When the previous code gets visited, the nameof(filename) node gets processed by the VisitInvocationExpression as an InvocationExpressionSyntax. https://github.com/eNeRGy164/LivingDocumentation/blob/main/src/LivingDocumentation.Analyzer/Analyzers/InvocationsAnalyzer.cs
The GetExpressionWithSymbol method returns null (this.semanticModel.GetSymbolInfo(expression).Symbol is null).
When running in verbose, the output will display all the occurences of nameof(): WARN: Could not resolve type of invocation of the following block:
The question is: should these particular cases be ignored altogether, or should they be handled?
Note: a similar situation is encounted with dynamic types: