Skip to content

Commit 39e8343

Browse files
committed
refactor: remove unused resolve_typedef function and simplify type resolution
1 parent 15bc48b commit 39e8343

File tree

1 file changed

+2
-50
lines changed

1 file changed

+2
-50
lines changed

ci/generate_checked_functions.py

Lines changed: 2 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -120,54 +120,6 @@ def write_checked_header(output_path, result_struct, functions, typedefs):
120120
f.write(f"#endif // {output_path.stem.upper()}_H\n")
121121

122122

123-
def resolve_typedef(typedefs, type_name):
124-
"""Resolve a typedef to its underlying type."""
125-
126-
def resolve_base_type(ptr_decl):
127-
# handle cases like: typedef int******* ptr;
128-
cur_type = ptr_decl
129-
pointer_type_name = ""
130-
131-
while isinstance(cur_type, c_ast.PtrDecl):
132-
cur_type = cur_type.type
133-
pointer_type_name += "*"
134-
135-
assert isinstance(cur_type, c_ast.TypeDecl)
136-
if isinstance(cur_type.type, c_ast.IdentifierType):
137-
base_type_name = " ".join(cur_type.type.names)
138-
pointer_type_name = base_type_name + pointer_type_name
139-
else:
140-
pointer_type_name = "".join(cur_type.type.name) + pointer_type_name
141-
142-
return pointer_type_name
143-
144-
resolved_type = typedefs.get(type_name)
145-
146-
if resolved_type is None:
147-
return type_name
148-
149-
if isinstance(resolved_type, c_ast.TypeDecl):
150-
if isinstance(resolved_type.type, c_ast.Enum):
151-
return type_name
152-
153-
if isinstance(resolved_type.type, c_ast.Struct):
154-
return type_name
155-
156-
if isinstance(resolved_type.type, c_ast.Union):
157-
return type_name
158-
159-
if isinstance(resolved_type.type, c_ast.IdentifierType):
160-
return type_name
161-
162-
raise Exception(f"Unhandled TypeDecl typedef {type_name}")
163-
elif isinstance(resolved_type, c_ast.PtrDecl):
164-
pointer_type_name = resolve_base_type(resolved_type)
165-
return pointer_type_name
166-
else:
167-
resolved_type.show()
168-
raise Exception(f"Unhandled typedef {type_name}")
169-
170-
171123
def generate_checked_function(func, typedefs):
172124
"""Generate a checked version of the given function."""
173125
func_name = func.name # Access the name directly from Decl
@@ -182,8 +134,8 @@ def generate_checked_function(func, typedefs):
182134
if isinstance(func.type.type, c_ast.TypeDecl):
183135
return_type = " ".join(func.type.type.type.names)
184136

185-
resolved_type = resolve_typedef(typedefs, return_type)
186-
if resolved_type.endswith("*"):
137+
resolved_type = typedefs.get(return_type, return_type)
138+
if isinstance(resolved_type, c_ast.PtrDecl):
187139
return_pointer = True
188140

189141
# Start building the new function

0 commit comments

Comments
 (0)