Skip to content

Handle User-Defined Type Name Conflicts in Function Signature #864

@vbarua

Description

@vbarua

Within function signatures, u!<name> is used to encode user-defined types. However, because the signature name doesn't include the originating extension, if we have two user-defined types with the same name (from different namespaces) in active use, we cannot easily distinguish between which one is being referenced.

Reporting Context

I'm throwing another UDT axe. So, let's say you have two UDTs both are named as X but belong to different name space N and M (i.e., N.X and M.X). Suppose you have a function that can handle both types. What will be the signature for that?
Or, should type short name actually need to spell out the fully qualified UDT name (e.g., u:.)? Or instead of URN, we use the alias defined in the YAML... but then the consumer should be aware of those aliases of the dependent YAMLs.
Or, do we just let it happen (i.e., without namespace qualification) and the consumer figures out the correct implementation based on the actual argument types regardless of name collision?
Or, one should not put the implementations with the different UDTs of the same name in one YAML from the beginning?

From #863 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    1.0Tracking work we consider required before releasing 1.0

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions