Skip to content

Commit

Permalink
continue
Browse files Browse the repository at this point in the history
  • Loading branch information
rhelmot committed Dec 4, 2024
1 parent 046034e commit b139bb9
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
Empty file added ailment/py.typed
Empty file.
11 changes: 7 additions & 4 deletions ailment/statement.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from __future__ import annotations
from typing import TYPE_CHECKING, Sequence
from abc import ABC, abstractmethod
from typing_extensions import Self

try:
import claripy
Expand Down Expand Up @@ -32,7 +33,7 @@ def __str__(self):
raise NotImplementedError()

@abstractmethod
def replace(self, old_expr, new_expr):
def replace(self, old_expr: Expression, new_expr: Expression) -> tuple[bool, Self]:
raise NotImplementedError()

def eq(self, expr0, expr1): # pylint:disable=no-self-use
Expand Down Expand Up @@ -85,9 +86,10 @@ def __repr__(self):
def __str__(self):
return f"{str(self.dst)} = {str(self.src)}"

def replace(self, old_expr, new_expr):
def replace(self, old_expr: Expression, new_expr: Expression):
if self.dst == old_expr:
r_dst = True
assert isinstance(new_expr, Atom)
replaced_dst = new_expr
else:
r_dst, replaced_dst = self.dst.replace(old_expr, new_expr)
Expand Down Expand Up @@ -558,7 +560,7 @@ def verbose_op(self):
def op(self):
return "call"

def replace(self, old_expr, new_expr):
def replace(self, old_expr: Expression, new_expr: Expression):
if isinstance(self.target, Expression):
r0, replaced_target = self.target.replace(old_expr, new_expr)
else:
Expand Down Expand Up @@ -721,6 +723,7 @@ def __str__(self):

def replace(self, old_expr, new_expr):
if self.dirty == old_expr:
assert isinstance(new_expr, DirtyExpression)
return True, DirtyStatement(self.idx, new_expr, **self.tags)
r, new_dirty = self.dirty.replace(old_expr, new_expr)
if r:
Expand Down Expand Up @@ -758,7 +761,7 @@ def likes(self, other: "Label"):
return isinstance(other, Label)

def replace(self, old_expr, new_expr):
return self
return False, self

matches = likes

Expand Down
4 changes: 4 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,7 @@ docs =
testing =
pytest
pytest-xdist

[options.package_data]
ailment =
py.typed

0 comments on commit b139bb9

Please sign in to comment.