Open
Description
/*END*/while (true) {
if (Math.random()) /*START*/break;
}
/*END1*/label: while (true) {
while (true) {
if (Math.random()) /*START*/break label;
}
}
/*END2*/
/*END1*/while (true) {
if (Math.random()) /*START*/continue;
}
/*END2*/
/*END1*/switch (Math.random() < 0.5) {
case true: /*START*/break;
}
/*END2*/
Given how go-to-definition on return
, await
, and yield
might work, it's tempting to jump up to the top of the corresponding statement.
However, I could also see us jumping to wherever the break
or continue
itself would jump. That's a bit at odds with the original intent of go-to-definition on return
since the point of that was to figure out "who owns the current return
statement?"
If someone wants to send a PR and discuss more in that PR, they're welcome to.
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
sviat9440 commentedon Oct 21, 2022
Both options have a reason to be. Maybe take it out in the config? But then this option should also be applicable for the
return
for uniformity.If we still go to the definition on
return
, then it is more logical to do the same in these cases.sviat9440 commentedon Oct 21, 2022
Additional test cases:
Should works
Should not fail:
sviat9440 commentedon Oct 21, 2022
okay, my pr is ready. Waiting for closure #51236
SamB commentedon Mar 3, 2023
Well, personally I would prefer if go-to-definition on
return
would go to the call. 😉