Skip to content
This repository was archived by the owner on Apr 14, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/Analysis/Engine/Impl/Parsing/Parser.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,7 +60,6 @@ public class Parser{
private bool _alwaysAllowContextDependentSyntax;
private bool _stubFile;

private static Encoding _utf8throwing;
private static Regex _codingRegex;

#region Construction
Expand Down
8 changes: 7 additions & 1 deletion src/Analysis/Engine/Impl/Values/TypingModuleInfo.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,11 +53,17 @@ private IAnalysisSet GetFunction(Node node, AnalysisUnit unit, string name, Call

private IAnalysisSet NewType_Call(Node node, AnalysisUnit unit, IAnalysisSet[] args, NameExpression[] keywordArgNames){
return unit.InterpreterScope.GetOrMakeNodeValue(node, Analyzer.NodeValueKind.TypeAnnotation, n =>{
var name = PythonAnalyzer.GetArg(args, keywordArgNames, null, 0).GetConstantValueAsString().FirstOrDefault(x => !string.IsNullOrEmpty(x));
if (args.Length == 0){
return AnalysisSet.Empty; // No arguments given
}

var arg = PythonAnalyzer.GetArg(args, keywordArgNames, null, 0);
var name = arg.GetConstantValueAsString().FirstOrDefault(x => !string.IsNullOrEmpty(x));
var baseTypeSet = PythonAnalyzer.GetArg(args, keywordArgNames, null, 1) ?? unit.State.ClassInfos[BuiltinTypeId.Object].Instance;
if (string.IsNullOrEmpty(name)){
return baseTypeSet;
}

var instPi = new ProtocolInfo(unit.ProjectEntry, unit.State);
var np = new NameProtocol(instPi, name, memberType: PythonMemberType.Instance, typeId: BuiltinTypeId.Type);
var cls = new NamespaceProtocol(instPi, "__class__"); // Declares class type
Expand Down
13 changes: 13 additions & 0 deletions src/Analysis/Engine/Test/AnalysisTest.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -4303,6 +4303,19 @@ def first(l: Sequence[T]) -> T: # Generic function
}
}

[TestMethod, Priority(0)]
public async Task TypeVarIncomplete(){
var code = @"
from typing import TypeVar

_ = TypeVar()
"
using (var server = await CreateServerAsync(PythonVersions.LatestAvailable3X)){
var analysis = await server.OpenDefaultDocumentAndGetAnalysisAsync(code);
analysis.Should().HaveVariable("_").WithNoTypes();
}
}

[TestMethod, Priority(0)]
public async Task Defaults(){
var text = @"
Expand Down