private async Task <SyntaxReference> GetDeclaringSyntaxReference(CodeFixContext context, TInvocationExpressionSyntax invocationExpression) { var semanticModel = await context.Document.GetSemanticModelAsync(context.CancellationToken); var methodSymbol = semanticModel.GetSymbolInfo(invocationExpression).Symbol as IMethodSymbol; var actualProxyTypeSymbol = _substituteProxyAnalysis.GetActualProxyTypeSymbol(semanticModel, invocationExpression, methodSymbol); var syntaxReference = actualProxyTypeSymbol.DeclaringSyntaxReferences.FirstOrDefault(); return(syntaxReference); }
private void AnalyzeSubstitute(SubstituteContext <TInvocationExpressionSyntax> substituteContext) { if (AnalyzeProxies(substituteContext)) { return; } var proxyType = _substituteProxyAnalysis.GetActualProxyTypeSymbol(substituteContext); if (proxyType == null) { return; } if (AnalyzeTypeAccessability(substituteContext, proxyType)) { return; } var constructorContext = _substituteConstructorAnalysis.CollectConstructorContext(substituteContext, proxyType); AnalyzeConstructor(substituteContext, constructorContext); }