Microsoft/TypeScript
GitHub で見るParsing issue for call expression with type arguments following left-shift
Open
#37,760 opened on 2020年4月2日
BugDomain: ParserHelp Wanted
Repository metrics
- Stars
- (48,455 stars)
- PR merge metrics
- (平均マージ 6d 17h) (30d で 9 merged PRs)
説明
TypeScript Version: 3.8.3
Search Terms: left shift, type parameter
Expected behavior: Syntax highlighting stays intact.
Actual behavior: Syntax highlighting breaks, even with ts-ignore.
Code
function alignof<T>(): number {
return 1;
}
// works
function foo<T>(): number {
return 1 >> alignof<T[]>();
}
// breaks
function bar<T>(): number {
return 1 << alignof<T[]>();
}
// still breaks, does not ignore
function baz<T>(): number {
// @ts-ignore
return 1 << alignof<T[]>();
}
Looks like a rescan issue on potentially ambiguous < tokens, attempting to interpret as 1 < <type>.
Playground Link: Provided