Skip to content

Suggest: generate drop, new and rep for aliased handle types #763

Open
@Mossaka

Description

@Mossaka

In tests/codegen/resource-alias.wit, we generate handle types for each alias.

typedef exports_my_resources_e1_own_x_t exports_my_resources_e2_own_x_t;

typedef exports_my_resources_e1_borrow_x_t exports_my_resources_e2_borrow_x_t;

However, we only generate helper functions for e1, not for e2.

extern void exports_my_resources_e1_x_drop_own(exports_my_resources_e1_own_x_t handle);
extern void exports_my_resources_e1_x_drop_borrow(exports_my_resources_e1_own_x_t handle);
extern exports_my_resources_e1_own_x_t exports_my_resources_e1_x_new(exports_my_resources_e1_x_t *rep);
extern exports_my_resources_e1_x_t* exports_my_resources_e1_x_rep(exports_my_resources_e1_own_x_t handle);
void exports_my_resources_e1_x_destructor(exports_my_resources_e1_x_t *rep);

If feels pretty strange from user perspectives that even though we are working inside interface e2, but we have to call functions with interface name e1 to create own and borrow handle types.

Suggestion: we generate the same set of helper functions for aliased handle types.

Thoughts? @alexcrichton @dicej

Metadata

Metadata

Assignees

No one assigned

    Labels

    gen-cRelated to the C code generator

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions