1
저는 분석기 작성을 시도하고 있습니다. Roslyn을 사용하여 필드에 할당 된 모든 것을 찾아야합니다.Roslyn 필드에 대한 모든 과제 찾기
private async static Task<bool> VariableDoesNotMutate(SyntaxNodeAnalysisContext context, VariableDeclaratorSyntax firstVariable)
{
var variableSymbol = context.SemanticModel.GetDeclaredSymbol(firstVariable);
var references = await SymbolFinder.FindReferencesAsync(variableSymbol, context.GetSolution());
foreach (var reference in references)
{
//How do I check for assignment?
}
//need to filter by assignments
return references.Count() > 1;
}
기호 찾기를 사용하여 들었습니다. 정확하지만 어떻게해야할지 모르겠습니다.
심볼 찾기에는 해킹을 통해 접근 할 수있는 솔루션이 필요하므로이 작업을 수행 할 수있는 다른 방법이 있다고 가정합니다.
문제 :
난 단지 선언은 내가 어떻게이 문제를 해결할 수있는 다른 참조를 찾을 수없는 반환되는 변수에 대한 모든 참조를 찾아보십시오
?한 번 참조가있는 경우 어떻게하면 할당인지를 결정할 수 있습니까?
을 당신은 아마 잘못된'Solution' 인스턴스를 검색하는 :이
는 그런 다음과 같이 참조를 얻을 수있는 잠재적 위험합니다. – SLaks
@SLaks 어떻게 심볼에 대한 모든 할당 찾기를 사용할 수 있습니까? 분석기에 공개 된 방법으로 솔루션을 찾을 수없는 경우에는? –
성능상의 이유로 인해서는 안됩니다. – SLaks