|
20 | 20 |
|
21 | 21 | import ctypes |
22 | 22 | from dataclasses import dataclass |
23 | | -from typing import Generator, Optional, List, Tuple |
| 23 | +from typing import Generator, Optional, List, Tuple, Union |
24 | 24 |
|
25 | 25 | # Binary Ninja components |
26 | 26 | import binaryninja |
@@ -106,7 +106,7 @@ def __del__(self): |
106 | 106 | core.BNFreeBasicBlock(self.handle) |
107 | 107 |
|
108 | 108 | @classmethod |
109 | | - def _from_core_block(cls, block: core.BNBasicBlockHandle) -> Optional['BasicBlock']: |
| 109 | + def _from_core_block(cls, block: core.BNBasicBlockHandle) -> Optional[Union['BasicBlock', 'binaryninja.lowlevelil.LowLevelILBasicBlock', 'binaryninja.mediumlevelil.MediumLevelILBasicBlock', 'binaryninja.highlevelil.HighLevelILBasicBlock']]: |
110 | 110 | """From a BNBasicBlockHandle, get a BasicBlock or one of the IL subclasses (takes ref)""" |
111 | 111 | func_handle = core.BNGetBasicBlockFunction(block) |
112 | 112 | if not func_handle: |
@@ -674,8 +674,8 @@ def dominance_frontier(self) -> List['BasicBlock']: |
674 | 674 | Dominance frontier for this basic block (read-only) |
675 | 675 |
|
676 | 676 | The dominance frontier of a basic block B is the set of blocks that are not strictly dominated by B, |
677 | | - but are immediately control-dependent on B. In other words, it contains the blocks where B's dominance |
678 | | - "stops" - the blocks that have at least one predecessor not dominated by B, while having another |
| 677 | + but are immediately control-dependent on B. In other words, it contains the blocks where B's dominance |
| 678 | + "stops" - the blocks that have at least one predecessor not dominated by B, while having another |
679 | 679 | predecessor that is dominated by B. |
680 | 680 | """ |
681 | 681 | count = ctypes.c_ulonglong() |
|
0 commit comments