This repository was archived by the owner on Apr 14, 2022. It is now read-only.
This repository was archived by the owner on Apr 14, 2022. It is now read-only.
NullReferenceException in OverloadResultComparer.Equals #286
Closed
Description
There seems to be a recent regression in the commit c067e83 (does not appear to be directly caused by it though), that throws a NullReferenceException
in
at Microsoft.PythonTools.Analysis.BuiltinFunctionOverloadResult.get_Documentation()
at Microsoft.PythonTools.Analysis.OverloadResultComparer.Equals(OverloadResult x, OverloadResult y)
at Microsoft.PythonTools.Analysis.OverloadResult.Equals(Object obj)
at System.Collections.Generic.ObjectEqualityComparer`1.Equals(T x, T y)
at System.Collections.Generic.HashSet`1.Contains(T item)
at System.Collections.Generic.HashSet`1.ContainsAllElements(IEnumerable`1 other)
at Microsoft.PythonTools.Analysis.Infrastructure.EnumerableExtensions.SetEquals[T](IEnumerable`1 source, IEnumerable`1 other, IEqualityComparer`1 comparer)
at Microsoft.PythonTools.Analysis.Values.BuiltinFunctionInfo.Equals(Object obj)
at Microsoft.PythonTools.Analysis.ObjectComparer.Equals(AnalysisValue x, AnalysisValue y)
at Microsoft.PythonTools.Analysis.AnalysisValue.Microsoft.PythonTools.Analysis.IAnalysisSet.Add(AnalysisValue item, Boolean& wasChanged, Boolean canMutate)
at Microsoft.PythonTools.Analysis.Analyzer.TypedDependencyInfo.AddType(AnalysisValue ns)
at Microsoft.PythonTools.Analysis.TypedDef`1.AddTypes(IVersioned projectEntry, IAnalysisSet newTypes, Boolean enqueue, IProjectEntry declaringScope)
at Microsoft.PythonTools.Analysis.TypedDef`1.AddTypes(AnalysisUnit unit, IAnalysisSet newTypes, Boolean enqueue, IProjectEntry declaringScope)
at Microsoft.PythonTools.Analysis.Analyzer.DDG.AssignImportedModuleOrMember(String name, IAnalysisSet value, Boolean addRef, Node node, NameExpression nameReference)
at Microsoft.PythonTools.Analysis.Analyzer.DDG.FinishImportModuleOrMember(ModuleReference module, IReadOnlyList`1 attribute, String name, Boolean addRef, Node node, NameExpression nameReference)
at Microsoft.PythonTools.Analysis.Analyzer.DDG.Walk(FromImportStatement node)
at Microsoft.PythonTools.Parsing.Ast.FromImportStatement.Walk(PythonWalker walker)
at Microsoft.PythonTools.Analysis.Analyzer.DDG.Walk(SuiteStatement node)
at Microsoft.PythonTools.Parsing.Ast.SuiteStatement.Walk(PythonWalker walker)
at Microsoft.PythonTools.Parsing.Ast.PythonAst.Walk(PythonWalker walker)
at Microsoft.PythonTools.Analysis.AnalysisUnit.AnalyzeWorker(DDG ddg, CancellationToken cancel)
at Microsoft.PythonTools.Analysis.AnalysisUnit.Analyze(DDG ddg, CancellationToken cancel)
at Microsoft.PythonTools.Analysis.Analyzer.DDG.Analyze(Deque`1 queue, CancellationToken cancel, Action`1 reportQueueSize, Int32 reportQueueInterval)
at Microsoft.PythonTools.Analysis.PythonAnalyzer.AnalyzeQueuedEntries(CancellationToken cancel)
I can not stably reproduce this issue, because I parse and queue modules in random order.