-
Notifications
You must be signed in to change notification settings - Fork 263
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
No nesting inside RangeToken.StartToken
#5976
No nesting inside RangeToken.StartToken
#5976
Conversation
RangeToken.StartToken
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.
I understand the RangeToken
-> IOrigin
generally, but why IOrigin
-> Token
in some places (e.g., ApplyExpr.cs
)? Is that because you are expecting to construct a RangeToken
and need a Token
as an argument?
Thanks for making the other refactors!
That is correct. |
What was changed?
Replace wrapping
RangeToken.StartToken
with wrapping the entireRangeToken
. This means:RangeToken
before must now take anIOrigin
instead, to also accept wrapped RangeTokensRangeToken
now only takesToken
values, locations that constructed RangeTokens had to be updated to use the correct type.X is RangeToken
now check the virtual methodX.IncludesRange
. This has the side-effect that error reporting more often detects that a range is available, so it reports "Could not prove<printed expression>
" instead of "this proposition could not be proved"Let
NonglobalVariable
and its subclasses (Formal and BoundVar) carry aName
instead of astring
, so it's clear what theIOrigin
is that contains the name.Replace
RefinementOrigin.IsInherited
, which did unwrapping of tokens to find aRefinementToken
, with a virtual methodIsInherited
.How has this been tested?
By submitting this pull request, I confirm that my contribution is made under the terms of the MIT license.