Skip to content

We can generate non-whitelisted structs using opaque items #453

Open
@emilio

Description

@emilio

In #452 I'm removing an assertion that was hitting in stylo, concretely with the BaseErrorResult typedef.

This codegen was being called from CompInfo::codegen as expected (it's an inner typedef). The above item was clearly whitelisted (it'd have hit before otherwise).

Upon reflection, ErrorResult is marked as opaque, so we immediately stop tracing it (never whitelist the inner item).

When we arrive to generate code for ErrorResult, we generate opaque structs, but we still generate the inner types for it (which is desirable IMO).

What should we do here @fitzgen? Tracing across opaque stuff doesn't seem desirable, but neither does not generating sub-items for opaque items. Presumably we could change the assertion to something like "is whitelisted or any parent is opaque", or something like that.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions