mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2025-12-31 21:06:25 +00:00
Merge pull request #15 from pythonbpf/static-type-checks
Static type checks
This commit is contained in:
@ -141,7 +141,7 @@ def compile() -> bool:
|
||||
success = True
|
||||
success = compile_to_ir(str(caller_file), str(ll_file)) and success
|
||||
|
||||
success = (
|
||||
success = bool(
|
||||
subprocess.run(
|
||||
[
|
||||
"llc",
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
from llvmlite import ir
|
||||
import ast
|
||||
|
||||
from typing import Any
|
||||
|
||||
from .helper import HelperHandlerRegistry, handle_helper_call
|
||||
from .type_deducer import ctypes_to_ir
|
||||
from .binary_ops import handle_binary_op
|
||||
from .expr_pass import eval_expr, handle_expr
|
||||
|
||||
local_var_metadata = {}
|
||||
local_var_metadata: dict[str | Any, Any] = {}
|
||||
|
||||
|
||||
def get_probe_string(func_node):
|
||||
@ -656,9 +656,9 @@ def infer_return_type(func_node: ast.FunctionDef):
|
||||
except Exception:
|
||||
return type(e).__name__
|
||||
|
||||
for node in ast.walk(func_node):
|
||||
if isinstance(node, ast.Return):
|
||||
t = _expr_type(node.value)
|
||||
for walked_node in ast.walk(func_node):
|
||||
if isinstance(walked_node, ast.Return):
|
||||
t = _expr_type(walked_node.value)
|
||||
if found_type is None:
|
||||
found_type = t
|
||||
elif found_type != t:
|
||||
|
||||
@ -1,7 +1,11 @@
|
||||
from collections.abc import Callable
|
||||
from typing import Any
|
||||
|
||||
|
||||
class MapProcessorRegistry:
|
||||
"""Registry for map processor functions"""
|
||||
|
||||
_processors = {}
|
||||
_processors: dict[str, Callable[..., Any]] = {}
|
||||
|
||||
@classmethod
|
||||
def register(cls, map_type_name):
|
||||
|
||||
Reference in New Issue
Block a user