Skip to content
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

[parser] Multi line group location ending #10436

Open
pvdz opened this issue Sep 13, 2019 · 1 comment

Comments

@pvdz
Copy link

commented Sep 13, 2019

Bug Report

Current Behavior

I think the location end is incorrect for multiline groups. If the group starts with the first non-whitespace after the parenthesis, then the end should be after the last non-whitespace but before the parenthesis. Right now it seems to be after the character before the closing paren.

Input Code

a = (
  b,
  c
)

Delta:

>    Babel AST is different:
>
>    -          loc:{start:{line:2,column:2},end:{line:3,column:3}},
>    +          loc:{start:{line:2,column:2},end:{line:4,column:0}},
>
class C extends (
  a,
  c
) {
}

Delta:

>    Babel AST is different:
>
>    -        loc:{start:{line:2,column:2},end:{line:3,column:3}},
>    +        loc:{start:{line:2,column:2},end:{line:4,column:0}},

Environment

Babel 7.5.5

Possible Solution

Update location tracking to ignore the trailing whitespace when creating the location for the group.

Alternatively update the start to span the actual parenthesised area (in that case probably before and after the parens, rather than inside).

@babel-bot

This comment has been minimized.

Copy link
Collaborator

commented Sep 13, 2019

Hey @pvdz! We really appreciate you taking the time to report an issue. The collaborators on this project attempt to help as many people as possible, but we're a limited number of volunteers, so it's possible this won't be addressed swiftly.

If you need any help, or just have general Babel or JavaScript questions, we have a vibrant Slack community that typically always has someone willing to help. You can sign-up here for an invite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.