getLeadingCommentRanges misses comment in call expression
#54.906 aperta il 7 lug 2023
Metriche repository
- Star
- (48.455 star)
- Metriche merge PR
- (Merge medio 6g 17h) (9 PR mergiate in 30 g)
Descrizione
Bug Report
getLeadingCommentRanges misses comments that are in front of arguments passed to a call expression.
Comments being missed is a known issue when comments are within a node between tokens not stored in the tree: https://github.com/Microsoft/TypeScript/wiki/FAQ#why-some-comments-are-not-preserved-in-emitted-javascript-even-when---removecomments-is-not-specified
However that is not the case here and in fact tsc will preserve that particular comment.
Note: here I refer to getLeadingCommentRanges but in reality the bug is present inside of iterateCommentRanges (what getLeadingCommentRanges uses under the hood)
🔎 Search Terms
- leading, trailing comment undefined
- getLeadingCommentRanges, getTrailingCommentRanges
- Call expression, function call, method call
🕗 Version & Regression Information
- This is the behavior in every version I tried (
4.3.5(the oldest version on ts-ast-viewer.com),5.1.6,@next (5.2.0-dev.20230706))
⏯ Playground Link
https://ts-ast-viewer.com/#code/MYewdgziA2CmB00QHMAUB6AVAAgBa2iW03WwCIB3EAJ2gBMyBKIA
💻 Code
console.log(/* hello */ "world")
Calling getLeadingCommentRanges on the string literal returns undefined.
🙁 Actual behavior
ts.getLeadingCommentRanges('console.log(/* hello */ "world")', 12)
returns undefined
🙂 Expected behavior
ts.getLeadingCommentRanges('console.log(/* hello */ "world")', 12)
returns [ { kind: 3, start: 12, end: 23, hasTrailingNewLine: false } ]