提交 c4a6ad56 编写于 作者: H Heejae Chang

Fix Null Exception crash

ProjectId for HostArgId can be null for workspace diagnostic exception. make sure we guard from it.
上级 827a65d5
......@@ -155,12 +155,12 @@ internal ImmutableHashSet<DiagnosticData> TestOnly_GetReportedDiagnostics(Diagno
private class HostArgsId : AnalyzerUpdateArgsId
{
private readonly AbstractHostDiagnosticUpdateSource _source;
private readonly ProjectId _projectId;
private readonly ProjectId _projectIdOpt;
public HostArgsId(AbstractHostDiagnosticUpdateSource source, DiagnosticAnalyzer analyzer, ProjectId id) : base(analyzer)
public HostArgsId(AbstractHostDiagnosticUpdateSource source, DiagnosticAnalyzer analyzer, ProjectId projectIdOpt) : base(analyzer)
{
this._source = source;
this._projectId = id;
this._projectIdOpt = projectIdOpt;
}
public override bool Equals(object obj)
......@@ -171,12 +171,12 @@ public override bool Equals(object obj)
return false;
}
return _source == other._source && _projectId == other._projectId && base.Equals(obj);
return _source == other._source && _projectIdOpt == other._projectIdOpt && base.Equals(obj);
}
public override int GetHashCode()
{
return Hash.Combine(_source.GetHashCode(), Hash.Combine(_projectId.GetHashCode(), base.GetHashCode()));
return Hash.Combine(_source.GetHashCode(), Hash.Combine(_projectIdOpt == null ? 1 : _projectIdOpt.GetHashCode(), base.GetHashCode()));
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册