Commit e23754c3 authored by Stefan Behnel's avatar Stefan Behnel

make CallNode a little smarter about when the return value can be None

parent 8aa091c5
...@@ -4230,6 +4230,14 @@ class CallNode(ExprNode): ...@@ -4230,6 +4230,14 @@ class CallNode(ExprNode):
def may_be_none(self): def may_be_none(self):
if self.may_return_none is not None: if self.may_return_none is not None:
return self.may_return_none return self.may_return_none
func_type = self.function.type
if func_type is type_type and self.function.is_name:
entry = self.function.entry
if entry.type.is_extension_type:
return False
if (entry.type.is_builtin_type and
entry.name in Builtin.types_that_construct_their_instance):
return False
return ExprNode.may_be_none(self) return ExprNode.may_be_none(self)
def analyse_as_type_constructor(self, env): def analyse_as_type_constructor(self, env):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment