Skip to content

Expose Loader Type Conversion Metadata #808

@AshutoshSharma-pixel

Description

@AshutoshSharma-pixel

Is your feature request related to a problem?

Loader type conversions are currently implemented within individual loader implementations, but the conversion metadata itself is not exposed in a structured or queryable form.

For example, loaders contain mappings between language-specific types and MetaCall reflect types, as well as mappings from MetaCall reflect types back into target language types. These relationships are currently embedded in loader conversion logic and are not centrally represented.

As a result:

  • Cross-language type mappings are difficult to inspect.
  • Tooling cannot reliably consume conversion information.
  • Documentation must be reconstructed from implementation details.
  • There is no single source of truth for conversion metadata.

Describe the solution you’d like

Provide a mechanism for exposing loader type conversion metadata as a structured data model.

One possible approach would be to derive the metadata directly from runtime behavior and export it through a dedicated API, configuration artifact, or generated metadata file.

The primary goal is to make conversion information available to:

  • Documentation tooling
  • Declaration generators
  • IntelliSense / LSP integrations
  • Cross-language analysis tools
  • Debugging and inspection utilities

Describe alternatives you’ve considered

  • Manually maintaining conversion metadata alongside loader implementations.
  • Static analysis of loader source code.
  • Dedicated registration mechanisms where loaders explicitly declare supported conversions.
  • Runtime-derived metadata generated from observed loader behavior.

Additional context

This topic emerged during discussions around meta-ast, declaration generation, and cross-language IntelliSense support.

A related challenge is ensuring that any exposed metadata remains aligned with actual loader behavior and does not diverge from the implemented conversion logic over time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions