Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix operator resolution involving generics and supertypes #1424

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

antvaset
Copy link
Contributor

For a hypothetical operator defined as

OperatorB : (T, System.Integer) -> T

the following should hold:

  1. When passed in (System.Boolean, System.Any), OperatorB should resolve with the (System.Boolean, System.Integer) -> System.Boolean signature.
  2. When passed in (System.Boolean, System.Integer) later during translation, OperatorB should resolve with the (System.Boolean, System.Integer) -> System.Boolean signature. Previous resolution involving System.Any must not affect this resolution.
  3. When passed in (FHIR.Quantity, System.Integer), OperatorB should resolve with the (FHIR.Quantity, System.Integer) -> FHIR.Quantity signature.
  4. When later passed in (FHIR.Distance, System.Integer), OperatorB should resolve with the (FHIR.Distance, System.Integer) -> FHIR.Distance signature. Previous instantiation of (FHIR.Quantity, System.Integer) with a supertype for OperatorB must not affect this resolution.

@antvaset antvaset marked this pull request as draft October 14, 2024 21:21
Copy link

Formatting check succeeded!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant