Skip to content
This repository was archived by the owner on Apr 14, 2022. It is now read-only.

Commit 6ec38d8

Browse files
author
Mikhail Arkhipov
authored
Couple of null checks (#1078)
1 parent 269a8d5 commit 6ec38d8

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

src/LanguageServer/Impl/Completion/TopLevelCompletion.cs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public static CompletionResult GetCompletions(Node statement, ScopeStatement sco
3535
applicableSpan = new SourceSpan(context.IndexToLocation(span.Value.Start), context.IndexToLocation(span.Value.End));
3636
}
3737

38-
var scope = context.Analysis.FindScope(context.Location);
38+
var scope = context.Analysis.FindScope(context.Location) ?? context.Analysis.GlobalScope;
3939
IEnumerable<CompletionItem> items;
4040
using (eval.OpenScope(scope)) {
4141
// Get variables declared in the module.
@@ -45,15 +45,18 @@ public static CompletionResult GetCompletions(Node statement, ScopeStatement sco
4545

4646
// Get builtins
4747
var builtins = context.Analysis.Document.Interpreter.ModuleResolution.BuiltinsModule;
48-
var builtinItems = builtins.GetMemberNames()
49-
.Select(n => {
50-
var m = builtins.GetMember(n);
51-
if ((options & CompletionListOptions.ExceptionsOnly) == CompletionListOptions.ExceptionsOnly && !IsExceptionType(m.GetPythonType())) {
52-
return null;
53-
}
54-
return context.ItemSource.CreateCompletionItem(n, m);
55-
}).ExcludeDefault();
56-
items = items.Concat(builtinItems);
48+
if (builtins != null) {
49+
var builtinItems = builtins.GetMemberNames()
50+
.Select(n => {
51+
var m = builtins.GetMember(n);
52+
if ((options & CompletionListOptions.ExceptionsOnly) == CompletionListOptions.ExceptionsOnly && !IsExceptionType(m.GetPythonType())) {
53+
return null;
54+
}
55+
56+
return context.ItemSource.CreateCompletionItem(n, m);
57+
}).ExcludeDefault();
58+
items = items.Concat(builtinItems);
59+
}
5760

5861
// Add possible function arguments.
5962
var finder = new ExpressionFinder(context.Ast, new FindExpressionOptions { Calls = true });

0 commit comments

Comments
 (0)