示例#1
0
	def visitDirectCall(self, node):
		if self.descriptive(): return node

		if node.code is None:
			return node

		foldFunc = node.code.annotation.staticFold
		if foldFunc and not node.kwds and not node.vargs and not node.kargs:
			result = self.annotateFolded(fold.foldCallAST(self.extractor, node, foldFunc, node.args))
			if result is not node:
				self.logCreated(result)
				return result

		node = self.tryDirectCallRewrite(node)
		node = self.eliminateDeadArguments(node)
		return node
示例#2
0
文件: fold.py 项目: winex/pystream
    def visitDirectCall(self, node):
        if self.descriptive(): return node

        if node.code is None:
            return node

        foldFunc = node.code.annotation.staticFold
        if foldFunc and not node.kwds and not node.vargs and not node.kargs:
            result = self.annotateFolded(
                fold.foldCallAST(self.extractor, node, foldFunc, node.args))
            if result is not node:
                self.logCreated(result)
                return result

        node = self.tryDirectCallRewrite(node)
        node = self.eliminateDeadArguments(node)
        return node
示例#3
0
	def op_UNARY_NOT(self):
		expr = self.getArg()
		uop = Not(expr)
		uop = foldCallAST(self.compiler.extractor, uop, operator.not_, (expr,))
		self.pushOp(uop)