Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NullReferenceException in datetime analysis #14

Closed
zooba opened this issue Apr 12, 2015 · 0 comments
Closed

NullReferenceException in datetime analysis #14

zooba opened this issue Apr 12, 2015 · 0 comments
Assignees
Labels

Comments

@zooba
Copy link
Member

zooba commented Apr 12, 2015

Got the following exception while analysing test.support.init.py:1472 from CPython 3.5. Can't see any obvious way to fix it other than checking _type for null. The null is apparently coming from the days property in datetime.py:474, which apparently has not assigned a type.

Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
   at Microsoft.PythonTools.Analysis.Values.BuiltinNamespace`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetMember(Microsoft.PythonTools.Parsing.Ast.Node, Microsoft.PythonTools.Analysis.AnalysisUnit, System.String)
   at Microsoft.PythonTools.Analysis.AnalysisSetExtensions.GetMember(Microsoft.PythonTools.Analysis.IAnalysisSet, Microsoft.PythonTools.Parsing.Ast.Node, Microsoft.PythonTools.Analysis.AnalysisUnit, System.String)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateMember(Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator, Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateBinary(Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator, Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateParenthesis(Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator, Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateAnd(Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator, Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateOr(Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator, Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateParenthesis(Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator, Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Microsoft.PythonTools.Parsing.Ast.Node)
   at Microsoft.PythonTools.Analysis.Analyzer.DDG.Walk(Microsoft.PythonTools.Parsing.Ast.IfStatement)
   at Microsoft.PythonTools.Parsing.Ast.IfStatement.Walk(Microsoft.PythonTools.Parsing.Ast.PythonWalker)
   at Microsoft.PythonTools.Analysis.Analyzer.DDG.Walk(Microsoft.PythonTools.Parsing.Ast.SuiteStatement)
   at Microsoft.PythonTools.Parsing.Ast.SuiteStatement.Walk(Microsoft.PythonTools.Parsing.Ast.PythonWalker)
   at Microsoft.PythonTools.Analysis.Analyzer.FunctionAnalysisUnit.AnalyzeWorker(Microsoft.PythonTools.Analysis.Analyzer.DDG, System.Threading.CancellationToken)
   at Microsoft.PythonTools.Analysis.Analyzer.DDG.Analyze(Microsoft.PythonTools.Analysis.Deque`1<Microsoft.PythonTools.Analysis.AnalysisUnit>, System.Threading.CancellationToken, System.Action`1<Int32>, Int32)
   at Microsoft.PythonTools.Analysis.PythonAnalyzer.AnalyzeQueuedEntries(System.Threading.CancellationToken)
   at Microsoft.PythonTools.Intellisense.AnalysisQueue+GroupAnalysis.Analyze(System.Threading.CancellationToken)
   at Microsoft.PythonTools.Intellisense.AnalysisQueue.Worker(System.Object)
   at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.ThreadHelper.ThreadStart(System.Object)
@zooba zooba self-assigned this Apr 13, 2015
@zooba zooba closed this as completed Apr 20, 2015
zooba added a commit that referenced this issue Apr 20, 2015
Makes BuiltinNamespace handle null types better.
Helps ensure that all CPythonProperty instances have a type.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant