-
Notifications
You must be signed in to change notification settings - Fork 266
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: Support for opaque function handles #4203
Fix: Support for opaque function handles #4203
Conversation
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.
This is great! I made one tiny suggested edit for the test.
@@ -5845,7 +5853,7 @@ void CheckCasePatternShape<VT>(CasePattern<VT> pat, Bpl.Expr rhs, IToken rhsTok, | |||
} | |||
|
|||
{ | |||
// Requires(Ty.., F#Handle( Ty1, ..., TyN, Layer, self), Heap, arg1, ..., argN) | |||
// Requires(Ty.., F#Handle( Ty1, ..., TyN, Layer, reveal, self), Heap, arg1, ..., argN) |
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.
Based on my initial experiments, this should make it easier to allow all functions to have a reveal parameter. The fact that requires
didn't have this parameter was an awkward asymmetry.
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.
To be fair, we add the reveal parameter to the handle version of the function, not its requires. Since requirements and postconditions are always revealed, there is no need for a reveal parameter in .reveal
Co-authored-by: Aaron Tomb <aarotomb@amazon.com>
This PR fixes #4202
I added the corresponding test.
By submitting this pull request, I confirm that my contribution is made under the terms of the MIT license.