-
-
Notifications
You must be signed in to change notification settings - Fork 193
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
Update to FCS 38 #1240
Update to FCS 38 #1240
Conversation
Hey Chet, Many thanks for these changes! It is nice to see the impact of FCS 38 before it is released. For the open expressions, I think the Your changes solved |
9522b7a
to
a38ff40
Compare
Somehow the update to use the FCS stable build has reverted that test (it's the same one with the |
@baronfel, I fixed the unit test in a different way and I believe everything is ok. |
Lovely! I was looking at your most recent commit and it does seems like a nice way to go. It's certainly more clean than anything I was contemplating doing to try to solve the issue. From your perspective, what else should I be looking at to get this merged? Additional test cases around the new 'open type' syntax? |
I'm going through https://devblogs.microsoft.com/dotnet/announcing-f-5/ and I'm adding some extra tests. |
This is prep work to update Ionide to FCS 38, and by association the Fantomas integration which breaks due to API differences.
The changes this time mostly related to:
I'm not saying you should take these changes right now (given that MS is going to push stable FCS shortly), but perhaps this MR can help get a head start on that integration.
There are two things that caused me problems that I wanted to call out for your review specifically:
The AstTransformer changes for open expressions
parentRange
in theNode
for these declarations, matching of trivia no longer works. This appears to be because the text of theopen
keyword is no longer included in the range of theSynOpenDeclTarget.ModuleOrNamespace
orSynOpenDeclTarget.Type
specifically. It seemed fine to use theparentRange
here because it encapsulates the entire starting point of the declaration.The final failing test,
some spacing is still lost in and around #if blocks, 303
In addition, I do not have any tests for the new
open type
syntax at all.I would appreciate your help and feedback on these points, as I'm hoping to quickly reach a resolution here and get a prerelease of this into ionide for publishing FCS 38 support. This could of course be done on a fork so that you wouldn't have to merge prerelease dependencies until the stable version is available.