Note: This is my first real effort at working on the compiler, so I might be going at this all wrong.
I am trying to work on #70926, and I am having a hard time figuring out how to approach it. The parser is trying to parse an
Arm of the match statement. As part of this process, it calls
parse_expr_res to parse the actual content of that
Arm. If the user accidentally typed a dot instead of a comma, the parser tries to parse the next pattern as part of the expression. This obviously fails, so we get a diagnostic returned back to the
prase_arm function. I want to attach a suggestion pointing at the dot telling the user that they might want it to be a comma.
I just don't know how to actually implement this. What I have tried so far is creating a
Span that runs from the
=> at the start of the arm to the point at which
parse_expr_res fails. If this span covers multiple lines, and if the failure happened on another
=> token, then there is a good chance that we have a missing comma somewhere.
My only issue is that I do not know how to pinpoint the location of the missing comma. I tried using some string processing to pinpoint a location in the source where a dot was used at the end of a line. This is where I want to attach my suggestion, but I do not know how to get a
Span from a position in a string.