mirror of https://github.com/python/cpython
support true division
This commit is contained in:
parent
fda3c3ddae
commit
aee0bfedcc
|
@ -161,12 +161,14 @@ class CodeGenerator:
|
|||
self.maxStack = 0
|
||||
self.last_lineno = None
|
||||
self._setupGraphDelegation()
|
||||
self._div_op = "BINARY_DIVIDE"
|
||||
|
||||
# XXX set flags based on future features
|
||||
futures = self.get_module().futures
|
||||
for feature in futures:
|
||||
if feature == "division":
|
||||
self.graph.setFlag(CO_FUTURE_DIVISION)
|
||||
self._div_op = "BINARY_TRUE_DIVIDE"
|
||||
elif feature == "generators":
|
||||
self.graph.setFlag(CO_GENERATOR_ALLOWED)
|
||||
|
||||
|
@ -975,7 +977,7 @@ class CodeGenerator:
|
|||
return self.binaryOp(node, 'BINARY_MULTIPLY')
|
||||
|
||||
def visitDiv(self, node):
|
||||
return self.binaryOp(node, 'BINARY_DIVIDE')
|
||||
return self.binaryOp(node, self._div_op)
|
||||
|
||||
def visitFloorDiv(self, node):
|
||||
return self.binaryOp(node, 'BINARY_FLOOR_DIVIDE')
|
||||
|
|
|
@ -161,12 +161,14 @@ class CodeGenerator:
|
|||
self.maxStack = 0
|
||||
self.last_lineno = None
|
||||
self._setupGraphDelegation()
|
||||
self._div_op = "BINARY_DIVIDE"
|
||||
|
||||
# XXX set flags based on future features
|
||||
futures = self.get_module().futures
|
||||
for feature in futures:
|
||||
if feature == "division":
|
||||
self.graph.setFlag(CO_FUTURE_DIVISION)
|
||||
self._div_op = "BINARY_TRUE_DIVIDE"
|
||||
elif feature == "generators":
|
||||
self.graph.setFlag(CO_GENERATOR_ALLOWED)
|
||||
|
||||
|
@ -975,7 +977,7 @@ class CodeGenerator:
|
|||
return self.binaryOp(node, 'BINARY_MULTIPLY')
|
||||
|
||||
def visitDiv(self, node):
|
||||
return self.binaryOp(node, 'BINARY_DIVIDE')
|
||||
return self.binaryOp(node, self._div_op)
|
||||
|
||||
def visitFloorDiv(self, node):
|
||||
return self.binaryOp(node, 'BINARY_FLOOR_DIVIDE')
|
||||
|
|
Loading…
Reference in New Issue