Commit 10012bc3 authored by Stefan Behnel's avatar Stefan Behnel

prevent InlinedDefNodeCallNode from being considered 'simple' by making...

prevent InlinedDefNodeCallNode from being considered 'simple' by making CallNode generally non-simple
parent 8b3c9a39
...@@ -3692,6 +3692,13 @@ class CallNode(ExprNode): ...@@ -3692,6 +3692,13 @@ class CallNode(ExprNode):
# the case of function overloading. # the case of function overloading.
return self.function.type_dependencies(env) return self.function.type_dependencies(env)
def is_simple(self):
# C function calls could be considered simple, but they may
# have side-effects that may hit when multiple operations must
# be effected in order, e.g. when constructing the argument
# sequence for a function call or comparing values.
return False
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
...@@ -3857,13 +3864,6 @@ class SimpleCallNode(CallNode): ...@@ -3857,13 +3864,6 @@ class SimpleCallNode(CallNode):
return func_type return func_type
def is_simple(self):
# C function calls could be considered simple, but they may
# have side-effects that may hit when multiple operations must
# be effected in order, e.g. when constructing the argument
# sequence for a function call or comparing values.
return False
def analyse_c_function_call(self, env): def analyse_c_function_call(self, env):
if self.function.type is error_type: if self.function.type is error_type:
self.type = error_type self.type = error_type
......
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