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

Closed
@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