in jetbrains-rider/ReSharper.AWS/src/AWS.Psi/Lambda/LambdaPsiHost.cs [71:104]
private bool IsHandlerExists(Lifetime lifetime, int projectId, string className, string methodName)
{
using (TryReadLockCookie.Create(NullProgressIndicator.Create(), _locks,
() => !lifetime.IsAlive || _locks.ContentModelLocks.IsWriteLockRequested))
{
var project = _projectModelViewHost.GetItemById<IProject>(projectId);
Assertion.AssertNotNull(project, "project instance should not be null");
_logger.Verbose($"Searching handler with name '{className}.{methodName}' in the project {project}...");
var psiModules = project.GetPsiModules();
foreach (var psiModule in psiModules)
{
using (CompilationContextCookie.OverrideOrCreate(psiModule.GetContextFromModule()))
{
var scope = _symbolCache.GetSymbolScope(psiModule, false, true);
var typeElements = scope.GetElementsByQualifiedName(className).OfType<IClass>();
foreach (var typeElement in typeElements)
{
InterruptableActivityCookie.CheckAndThrow();
foreach (var method in typeElement.Methods)
{
if (method.ShortName != methodName) continue;
if (!LambdaFinder.IsSuitableLambdaMethod(method)) continue;
return true;
}
}
}
}
}
return false;
}