Fix calculating type of pyClass constructor call

This commit is contained in:
Semyon Proshev
2016-02-17 16:36:26 +03:00
parent c1cb82f261
commit 569a7ca9f4
@@ -368,15 +368,12 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType {
@Nullable
@Override
public PyType getReturnType(@NotNull TypeEvalContext context) {
if (isDefinition()) {
return new PyClassTypeImpl(getPyClass(), false);
}
return null;
return getCallType(context, null);
}
@Nullable
@Override
public PyType getCallType(@NotNull TypeEvalContext context, @NotNull PyCallSiteExpression callSite) {
public PyType getCallType(@NotNull TypeEvalContext context, @Nullable PyCallSiteExpression callSite) {
if (!isDefinition()) {
final PyResolveContext resolveContext = PyResolveContext.noImplicits().withTypeEvalContext(context);
final List<? extends RatedResolveResult> resolveResults = resolveMember(PyNames.CALL, callSite, AccessDirection.READ, resolveContext);
@@ -392,6 +389,8 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType {
return PyUnionType.union(result);
}
} else {
return new PyClassTypeImpl(getPyClass(), false);
}
return null;