feat(bootstrap): function pointer types + C emission
- Add tekFunc AST node and parser support for func(Params) -> Ret - Add tkFunc type resolution in sema and hir_lower - Add &FuncName address-taking yielding tkMutRef(tkFunc) - Fix C emission: function pointer params use Ret (*name)(Params) syntax via cParamDecl helper that embeds the name inside (*) - Fix forward declarations and temp declarations for function pointers - Add funcPtrTypes table in C backend so &Fn temps get proper type - Add _test_funcptr integration test
This commit is contained in:
@@ -183,6 +183,10 @@ proc isAssignableTo*(a, b: Type): bool =
|
||||
return true
|
||||
if b.isDynRef and a.isMutRef:
|
||||
return true
|
||||
# &mut func(...) -> func(...) (function pointer decay)
|
||||
if a.isMutRef and b.kind == tkFunc:
|
||||
if a.inner.len > 0 and a.inner[0].kind == tkFunc:
|
||||
return true
|
||||
return false
|
||||
|
||||
# String representation
|
||||
|
||||
Reference in New Issue
Block a user