-
Notifications
You must be signed in to change notification settings - Fork 832
Description
This is a (for now) blank issue, with intent of assembling list of issues/enhancement requests around the F# parser. The idea is to have a hub to ease onboarding of contributions to the parser by the community or main stake holders maintaining the language, in similar fashion we have issue #1103.
I'll just put the categories I know of, for now.
error recovery in the parser
those issues are about enabling damage mitigation in case of syntax error, for the tooling to recover and remain usable.
See the "thriller" which is a good intro of current state of things: https://youtu.be/3Zr0HNVcooU?t=4977
- Language Parser: poor error recovery on faulty DU declaration / improve error reporting #11468 broken DU decl (missing
of) breaks the whole file - Parser: add recovery for unfinished match clauses #10872 recovery for unfinished
match - Improve error reporting: message when defining record with open brace on separate line #1826
- parser recovery is not great for
Ident.(and the tooling doesn't help typing qualified custom operators #16260
adjustments / improvements / inconsistencies in the AST
those issues are about making the AST more consistent, and reducing needs of adhoc hacks in tooling to work around some of the historical choices made for the AST representation out of the parser.
- Correct range of SynTypeDefnSig. #11474 Correct range of SynTypeDefnSig.
- Add KeywordString to SynConst type #11477 / Add KeywordString to SynConst. #11482 Add KeywordString to SynConst type (preserving
__LITERALS__) - Range of signature module includes attribute for signature but not for implementation file. #11381 / Include attributes in range of SynModuleOrNamespace(Sig). #11483 Include attributes in range of SynModuleOrNamespace(Sig).
- Attributes not included in the range of the parent node #11486 / Include range of attributes in parent (implementation files) #11495 Attributes not included in the range of the parent node
- Attributes not included in the range of the parent node (signature files) #11487 Attributes not included in the range of the parent node (signature files)
- FCS SyntaxTree: store preprocessor directives #12815 (precompiler ifdef directives, relevant for formatting)
- Support the use of inref/outref/byref types in declarations for
externfunctions #12613 (also impacts code gen) - Attributes are not included in SynExceptionDefnRepr / SynExceptionSig #12434 (inconsistency, relevant for formatting)
- Syntax Tree Trivia #12418 (missing trivia, relevant for formatting)
- Included parenthesis in SynBinding headPat #11893 (missing trivia, relevant for formatting)
error messages to enhance that incur dealing with the parser tokens
those issues are meant as a subset of #1103 when a particular issue has been investigated and identified as "best fixed through change in the parsing".
change to the language
@TIHan, @auduchinok , @nojaf & others, if you have tickets you want me to list here, you can ping me on the slack or elsewhere and I'll bring them up / classify. If there are other categories to add, please let me know.
Hope this serves as useful as our model issue handled by @isaacabraham 🙂
Metadata
Metadata
Assignees
Labels
Type
Projects
Status