提交 b18c6e64 编写于 作者: M Manish Vasani

Handle null value in assert

上级 eadfb155
......@@ -141,8 +141,7 @@ HostSymbolStartAnalysisScope getSymbolAnalysisScopeCore()
_lazyPendingMemberSymbolsMapOpt = _lazyPendingMemberSymbolsMapOpt ?? new Dictionary<ISymbol, HashSet<ISymbol>>();
// Guard against entry added from another thread.
Debug.Assert(!_lazyPendingMemberSymbolsMapOpt.TryGetValue(symbol, out var existingDependentSymbols) ||
dependentSymbols.SetEquals(existingDependentSymbols));
VerifyNewEntryForPendingMemberSymbolsMap(symbol, dependentSymbols);
_lazyPendingMemberSymbolsMapOpt[symbol] = dependentSymbols;
}
}
......@@ -187,6 +186,23 @@ void processMembers(IEnumerable<ISymbol> members)
}
}
[Conditional("DEBUG")]
void VerifyNewEntryForPendingMemberSymbolsMap(ISymbol symbol, HashSet<ISymbol> dependentSymbols)
{
if (_lazyPendingMemberSymbolsMapOpt.TryGetValue(symbol, out var existingDependentSymbols))
{
if (existingDependentSymbols == null)
{
Debug.Assert(dependentSymbols == null);
}
else
{
Debug.Assert(dependentSymbols != null);
Debug.Assert(dependentSymbols.SetEquals(existingDependentSymbols));
}
}
}
public void ClearSymbolScopeTask(ISymbol symbol)
{
lock (_gate)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册