-
Notifications
You must be signed in to change notification settings - Fork 183
Add ProjectionTerm #745
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
Add ProjectionTerm #745
Conversation
4fb2f8c
to
c93db52
Compare
howdy @JulianKnodt, what's the status of this? |
@compiler-errors Started on it, been caught up with some other deadlines so have not had a chance to progress, will get to it eventualllyyyy but I'm unsure when I'll be able to. |
☔ The latest upstream changes (presumably #753) made this pull request unmergeable. Please resolve the merge conflicts. |
Is this PR in the right direction? I think chalk should not get its hand dirty with const evaluation, since const eval needs handling and interpreting whole rust syntax, and doing that in chalk is against modularization. I imagine that the user of chalk should provide const eval infrastructure, and evaluate const generics so chalk has them in the concrete shape. In this way, chalk doesn't need to normalize associated constants (it can't normalize completely without full const eval), it just needs to provide a function that computes an |
@HKalbasi It's been a minute since I started this, and it's a good reminder for me to go back and actually implement this (I'm starting to finally get more time on my hands), but the context for this is that it would make sense to support const equality in the context of trait bounds (see here). While I don't know whether Chalk needs to support evaluating them, my understanding from a few months ago that chalk needs to support consts in a new position which it previously did not. If any of this is wrong, please let me know, I haven't thought about this in a minute and should get back to it. |
I thought it is going to add a |
0d9d9af
to
27e6925
Compare
This just changes the name of projection type to term, which highlights where other changes to using a term should go.
@compiler-errors Do you know who I can ask about Chalk? I'm starting to run into things I am unsure about, and am unsure where to look. Specifically, is there any existing infrastructure for consts inside of chalk? |
Generally I or @nikomatsakis should have the most knowledge of Chalk things. Easiest to ask in Zulip. There is very little infrastructure for consts in Chalk. I think most/all of it is in |
Where trivial, add ConstEq, otherwise defer to todos
); | ||
} | ||
AssociatedTermValueBound::Const(ct) => { | ||
todo!(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Am unsure why this is not causing anything to break
☔ The latest upstream changes (presumably #767) made this pull request unmergeable. Please resolve the merge conflicts. |
This starts adding terms into chalk so that associated consts can be equated.