Skip to content
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 AstTypeAnnotationConverter.MakeGenericClassType #446

@jakebailey

Description

@jakebailey

Got this while looking into #391 some more.

[Error - 10:58:54 AM] System.AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.) ---> System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.PythonTools.Interpreter.Ast.AstTypeAnnotationConverter.MakeGenericClassType(IPythonType typeArg) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstTypeAnnotationConverter.cs:line 201 at Microsoft.PythonTools.Interpreter.Ast.AstTypeAnnotationConverter.MakeGeneric(IPythonType baseType, IReadOnlyList`1 args) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstTypeAnnotationConverter.cs:line 135 at Microsoft.PythonTools.Parsing.Ast.TypeAnnotation.Walker.MakeGenericOp.Apply[T](TypeAnnotationConverter`1 converter, Stack`1 stack) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\TypeAnnotation.cs:line 266 at Microsoft.PythonTools.Parsing.Ast.TypeAnnotation.Walker.GetResult[T](TypeAnnotationConverter`1 converter) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\TypeAnnotation.cs:line 71 at Microsoft.PythonTools.Parsing.Ast.TypeAnnotation.GetValue[T](TypeAnnotationConverter`1 converter) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\TypeAnnotation.cs:line 49 at Microsoft.PythonTools.Interpreter.Ast.NameLookupContext.GetTypesFromAnnotation(Expression expr) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\NameLookupContext.cs:line 158 at Microsoft.PythonTools.Interpreter.Ast.AstAnalysisFunctionWalker.Walk() in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstAnalysisFunctionWalker.cs:line 68 at Microsoft.PythonTools.Interpreter.Ast.AstAnalysisFunctionWalkerSet.ProcessWalker(AstAnalysisFunctionWalker walker) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstAnalysisFunctionWalkerSet.cs:line 64 at Microsoft.PythonTools.Interpreter.Ast.AstAnalysisFunctionWalkerSet.ProcessSet() in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstAnalysisFunctionWalkerSet.cs:line 51 at Microsoft.PythonTools.Interpreter.Ast.AstAnalysisWalker.Complete() in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstAnalysisWalker.cs:line 90 at Microsoft.PythonTools.Interpreter.Ast.AstScrapedPythonModule.PostWalk(PythonWalker walker) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstScrapedPythonModule.cs:line 139 at Microsoft.PythonTools.Interpreter.Ast.AstScrapedPythonModule.Imported(IModuleContext context) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstScrapedPythonModule.cs:line 251 at Microsoft.PythonTools.Interpreter.Ast.AstPythonMultipleMembers.MultipleModuleMembers.Imported(IModuleContext context) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstPythonMultipleMembers.cs:line 199 --- End of inner exception stack trace --- at Microsoft.PythonTools.Interpreter.Ast.AstPythonInterpreter.ImportModule(String name) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstPythonInterpreter.cs:line 263 at Microsoft.PythonTools.Analysis.ModuleTable.TryImport(String name, ModuleReference& moduleReference) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\ModuleTable.cs:line 128 at Microsoft.PythonTools.Analysis.Analyzer.DDG.TryImportModule(String modName, Boolean forceAbsolute, ModuleReference& moduleRef, IReadOnlyList`1& remainingParts) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Analyzer\DDG.cs:line 440 at Microsoft.PythonTools.Analysis.Analyzer.DDG.Walk(FromImportStatement node) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Analyzer\DDG.cs:line 365 at Microsoft.PythonTools.Parsing.Ast.FromImportStatement.Walk(PythonWalker walker) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\FromImportStatement.cs:line 61 at Microsoft.PythonTools.Analysis.Analyzer.DDG.Walk(SuiteStatement node) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Analyzer\DDG.cs:line 665 at Microsoft.PythonTools.Parsing.Ast.SuiteStatement.Walk(PythonWalker walker) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\SuiteStatement.cs:line 34 at Microsoft.PythonTools.Parsing.Ast.PythonAst.Walk(PythonWalker walker) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\PythonAst.cs:line 92 at Microsoft.PythonTools.Analysis.AnalysisUnit.AnalyzeWorker(DDG ddg, CancellationToken cancel) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\AnalysisUnit.cs:line 154 at Microsoft.PythonTools.Analysis.AnalysisUnit.Analyze(DDG ddg, CancellationToken cancel) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\AnalysisUnit.cs:line 139 at Microsoft.PythonTools.Analysis.Analyzer.DDG.Analyze(Deque`1 queue, CancellationToken cancel, Action`1 reportQueueSize, Int32 reportQueueInterval) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Analyzer\DDG.cs:line 75 at Microsoft.PythonTools.Analysis.PythonAnalyzer.AnalyzeQueuedEntries(CancellationToken cancel) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\PythonAnalyzer.cs:line 908 at Microsoft.PythonTools.Intellisense.AnalysisQueue.GroupAnalysis.Analyze(CancellationToken cancel) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Intellisense\AnalysisQueue.cs:line 229 at Microsoft.PythonTools.Intellisense.AnalysisQueue.HandleAnalyzable(IAnalyzable item, AnalysisPriority priority, CancellationToken cancellationToken) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Intellisense\AnalysisQueue.cs:line 152 at Microsoft.PythonTools.Intellisense.AnalysisQueue.ConsumerLoop() in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Intellisense\AnalysisQueue.cs:line 64 ---> (Inner Exception #0) System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.PythonTools.Interpreter.Ast.AstTypeAnnotationConverter.MakeGenericClassType(IPythonType typeArg) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstTypeAnnotationConverter.cs:line 201 at Microsoft.PythonTools.Interpreter.Ast.AstTypeAnnotationConverter.MakeGeneric(IPythonType baseType, IReadOnlyList`1 args) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstTypeAnnotationConverter.cs:line 135 at Microsoft.PythonTools.Parsing.Ast.TypeAnnotation.Walker.MakeGenericOp.Apply[T](TypeAnnotationConverter`1 converter, Stack`1 stack) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\TypeAnnotation.cs:line 266 at Microsoft.PythonTools.Parsing.Ast.TypeAnnotation.Walker.GetResult[T](TypeAnnotationConverter`1 converter) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\TypeAnnotation.cs:line 71 at Microsoft.PythonTools.Parsing.Ast.TypeAnnotation.GetValue[T](TypeAnnotationConverter`1 converter) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Parsing\Ast\TypeAnnotation.cs:line 49 at Microsoft.PythonTools.Interpreter.Ast.NameLookupContext.GetTypesFromAnnotation(Expression expr) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\NameLookupContext.cs:line 158 at Microsoft.PythonTools.Interpreter.Ast.AstAnalysisFunctionWalker.Walk() in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstAnalysisFunctionWalker.cs:line 68 at Microsoft.PythonTools.Interpreter.Ast.AstAnalysisFunctionWalkerSet.ProcessWalker(AstAnalysisFunctionWalker walker) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstAnalysisFunctionWalkerSet.cs:line 64 at Microsoft.PythonTools.Interpreter.Ast.AstAnalysisFunctionWalkerSet.ProcessSet() in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstAnalysisFunctionWalkerSet.cs:line 51 at Microsoft.PythonTools.Interpreter.Ast.AstAnalysisWalker.Complete() in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstAnalysisWalker.cs:line 90 at Microsoft.PythonTools.Interpreter.Ast.AstScrapedPythonModule.PostWalk(PythonWalker walker) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstScrapedPythonModule.cs:line 139 at Microsoft.PythonTools.Interpreter.Ast.AstScrapedPythonModule.Imported(IModuleContext context) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstScrapedPythonModule.cs:line 251 at Microsoft.PythonTools.Interpreter.Ast.AstPythonMultipleMembers.MultipleModuleMembers.Imported(IModuleContext context) in C:\Users\jabaile\python-language-server\src\Analysis\Engine\Impl\Interpreter\Ast\AstPythonMultipleMembers.cs:line 199<--- 

This causes a Debug.Fail in Analysis_UnhandledException.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions