public void SetCurrentScope(string memberName, DeclarationType type)
{
Logger.Trace("Setting current scope: {0} ({1}) in thread {2}", memberName, type,
Thread.CurrentThread.ManagedThreadId);
_currentParent = _declarationFinder.MatchName(memberName).SingleOrDefault(item =>
item.QualifiedName.QualifiedModuleName == _qualifiedModuleName && item.DeclarationType == type);
_currentScope = _declarationFinder.MatchName(memberName).SingleOrDefault(item =>
item.QualifiedName.QualifiedModuleName == _qualifiedModuleName && item.DeclarationType == type) ??
_moduleDeclaration;
Logger.Trace("Current scope is now {0} in thread {1}",
_currentScope == null ? "null" : _currentScope.IdentifierName, Thread.CurrentThread.ManagedThreadId);
}