Skip to content

Conversation

@ginsbach
Copy link
Contributor

@ginsbach ginsbach commented Jun 13, 2023

@ginsbach ginsbach force-pushed the ginsbach/SpecifyInstantiations branch 19 times, most recently from 51ab10d to e5b2fa9 Compare June 16, 2023 15:57
@ginsbach ginsbach force-pushed the ginsbach/SpecifyInstantiations branch from e5b2fa9 to 1ed3bae Compare June 16, 2023 16:05
@ginsbach ginsbach marked this pull request as ready for review June 16, 2023 16:21
@ginsbach ginsbach requested a review from a team as a code owner June 16, 2023 16:21
@ginsbach ginsbach requested a review from alexet June 16, 2023 16:21
alexet
alexet previously approved these changes Jun 19, 2023
Copy link

@alexet alexet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but I think there are still some missing parts

For all the bits in the evaluation sections that kind-of happen "after substitution" we probably want something to just state that we handle predicates by using the normal algorithm but replacing all instantiation-relative predicates and types with the actual version. You probably want to say this should happen after we resolve calls and type references but I think we can get away with being a bit vague about precisely what that means.

The section on layer evaluation may want a note that it applies to "fully instantiated" types and predicates.

Otherwise the missing parts are really covered by the general section on components.

@ginsbach ginsbach force-pushed the ginsbach/SpecifyInstantiations branch from 33c019c to 0c4eb68 Compare June 20, 2023 08:07
@ginsbach ginsbach requested a review from alexet June 20, 2023 08:47
@ginsbach
Copy link
Contributor Author

The section on layer evaluation may want a note that it applies to "fully instantiated" types and predicates.

I have added this in the fifth commit.

For all the bits in the evaluation sections that kind-of happen "after substitution" we probably want something to just state that we handle predicates by using the normal algorithm but replacing all instantiation-relative predicates and types with the actual version. You probably want to say this should happen after we resolve calls and type references but I think we can get away with being a bit vague about precisely what that means.

Can you elaborate a bit which section you mean and what changes you'd like to see?

Copy link

@alexet alexet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes LGTM

The point I was trying to make is that the sections on Stratification and Layer evaluation only really apply to declared predicates. We don't need to go into great detail but a line saying it works by substituting after resolving is fine. Alternatively we could probably get away with by substituting after resolving types and predicates.

@ginsbach
Copy link
Contributor Author

ginsbach commented Jun 20, 2023

Changes LGTM

The point I was trying to make is that the sections on Stratification and Layer evaluation only really apply to declared predicates. We don't need to go into great detail but a line saying it works by substituting after resolving is fine. Alternatively we could probably get away with by substituting after resolving types and predicates.

I will consider a follow-up PR to polish the evaluation section (see #13513).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants