Open
Description
Currently the projection rule for import names looks like:
projection ::= '/' <label>
label ::= <word>
| <label> '-' <word>
This prevents projections for exports using the interfacename
format, as these cannot be expressed simply as a label
.
Say component foo:bar
exports an instance with name bar:baz/qux
(i.e. in interfacename
format) and we wanted to import this instance from another component, but reference a possible implementation using an unlocked-dep
import rather an import of an interface name. We're unable to express this because bar:baz/qux
cannot be represented as a projection.
One possible solution:
Extend the projection
rule as follows:
projection ::= '/' <projection-segment>
projection-segment ::= <label> | '<' <interfacename> '>'
Or using some other delimiter to denote that the segment is an interface name and not a label.
Metadata
Metadata
Assignees
Labels
No labels