Module opshin.optimize.optimize_remove_checked_integrity_checks
Expand source code
import ast
from ..typed_util import ScopedSequenceNodeTransformer
from .analyze_integrity import is_integrity_call
class OptimizeRemoveCheckedIntegrityChecks(ScopedSequenceNodeTransformer):
"""Remove integrity checks whose arguments have already passed integrity checks."""
step = "Removing redundant integrity checks"
def visit_Expr(self, node: ast.Expr):
if (
is_integrity_call(node.value)
and len(node.value.args) == 1
and node.value.args[0].integrity_checked
):
return None
return node
Classes
class OptimizeRemoveCheckedIntegrityChecks-
Remove integrity checks whose arguments have already passed integrity checks.
Expand source code
class OptimizeRemoveCheckedIntegrityChecks(ScopedSequenceNodeTransformer): """Remove integrity checks whose arguments have already passed integrity checks.""" step = "Removing redundant integrity checks" def visit_Expr(self, node: ast.Expr): if ( is_integrity_call(node.value) and len(node.value.args) == 1 and node.value.args[0].integrity_checked ): return None return nodeAncestors
- ScopedSequenceNodeTransformer
- CompilingNodeTransformer
- TypedNodeTransformer
- ast.NodeTransformer
- ast.NodeVisitor
Class variables
var step-
Inherited from:
ScopedSequenceNodeTransformer.stepThe type of the None singleton.
Methods
def visit(self, node)-
Inherited from:
ScopedSequenceNodeTransformer.visitVisit a node.
def visit_Expr(self, node: ast.Expr)-
Expand source code
def visit_Expr(self, node: ast.Expr): if ( is_integrity_call(node.value) and len(node.value.args) == 1 and node.value.args[0].integrity_checked ): return None return node