Skip to content

Commit

Permalink
fix(es/parser): Fix typeof in TSCallSignatureDeclaration (#6553)
Browse files Browse the repository at this point in the history
**Related issue:**

 - Closes #6430
  • Loading branch information
alexander-akait committed Nov 30, 2022
1 parent ad73fbf commit aa28aa0
Show file tree
Hide file tree
Showing 3 changed files with 1,399 additions and 1 deletion.
2 changes: 1 addition & 1 deletion crates/swc_ecma_parser/src/parser/typescript.rs
Expand Up @@ -355,7 +355,7 @@ impl<I: Tokens> Parser<I> {
.map(From::from)?
};

let type_args = if is!(self, '<') {
let type_args = if !self.input.had_line_break_before_cur() && is!(self, '<') {
Some(self.parse_ts_type_args()?)
} else {
None
Expand Down
31 changes: 31 additions & 0 deletions crates/swc_ecma_parser/tests/typescript/issue-6430/index.ts
@@ -0,0 +1,31 @@
import MyType from "../../../../swc_ecma_transforms_base/tests/ts-resolver/1/input";

type Tmpz = {
<N extends number>(num: N): MyType
<S extends string>(str: S): MyType
}

type Tmp = {
<N extends number>(num: N): typeof num
<S extends string>(str: S): typeof str
}

const foo: Tmp = <T,>(str: T): T => {
return str;
}

console.log(foo("str"));

type Tmp1 = {
<S extends string>(str: S): typeof str
}

type Tmp2 = {
(num: number): number
(str: string): string
}

type Tmp3 = {
<N extends number>(num: N): number
<S extends string>(str: S): string
}

2 comments on commit aa28aa0

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: aa28aa0 Previous: 9b58cce Ratio
es/full/bugs-1 368280 ns/iter (± 35955) 330951 ns/iter (± 19770) 1.11
es/full/minify/libraries/antd 2077607254 ns/iter (± 66400578) 1995167798 ns/iter (± 27838984) 1.04
es/full/minify/libraries/d3 470781293 ns/iter (± 44275517) 436812474 ns/iter (± 13790288) 1.08
es/full/minify/libraries/echarts 1889825595 ns/iter (± 458169233) 1680839487 ns/iter (± 19238192) 1.12
es/full/minify/libraries/jquery 129542394 ns/iter (± 13878341) 110448942 ns/iter (± 3310273) 1.17
es/full/minify/libraries/lodash 186605768 ns/iter (± 54856058) 126326300 ns/iter (± 3040612) 1.48
es/full/minify/libraries/moment 80738033 ns/iter (± 9841051) 64844719 ns/iter (± 1000396) 1.25
es/full/minify/libraries/react 27416475 ns/iter (± 11484892) 21721935 ns/iter (± 501429) 1.26
es/full/minify/libraries/terser 877762498 ns/iter (± 345457424) 333505796 ns/iter (± 5194108) 2.63
es/full/minify/libraries/three 729172495 ns/iter (± 166768269) 614214486 ns/iter (± 8731511) 1.19
es/full/minify/libraries/typescript 4237589065 ns/iter (± 127886143) 3646065512 ns/iter (± 28782396) 1.16
es/full/minify/libraries/victory 1005997938 ns/iter (± 93196071) 889917414 ns/iter (± 20310454) 1.13
es/full/minify/libraries/vue 210825496 ns/iter (± 32481957) 165856672 ns/iter (± 2919585) 1.27
es/full/codegen/es3 35793 ns/iter (± 3146) 33602 ns/iter (± 700) 1.07
es/full/codegen/es5 34988 ns/iter (± 2300) 33524 ns/iter (± 2024) 1.04
es/full/codegen/es2015 34157 ns/iter (± 1512) 33630 ns/iter (± 1058) 1.02
es/full/codegen/es2016 34200 ns/iter (± 1510) 33561 ns/iter (± 887) 1.02
es/full/codegen/es2017 35826 ns/iter (± 6219) 33573 ns/iter (± 875) 1.07
es/full/codegen/es2018 34979 ns/iter (± 6095) 33525 ns/iter (± 18142) 1.04
es/full/codegen/es2019 36118 ns/iter (± 5645) 33843 ns/iter (± 717) 1.07
es/full/codegen/es2020 34866 ns/iter (± 2544) 33751 ns/iter (± 991) 1.03
es/full/all/es3 217158716 ns/iter (± 37964303) 205811067 ns/iter (± 9198934) 1.06
es/full/all/es5 191200081 ns/iter (± 22286840) 191816524 ns/iter (± 8394606) 1.00
es/full/all/es2015 151567779 ns/iter (± 13432272) 152032033 ns/iter (± 6141974) 1.00
es/full/all/es2016 149950870 ns/iter (± 9903296) 149503894 ns/iter (± 5807205) 1.00
es/full/all/es2017 147864705 ns/iter (± 13173534) 148531127 ns/iter (± 14721314) 1.00
es/full/all/es2018 149870415 ns/iter (± 15410217) 157466422 ns/iter (± 10924113) 0.95
es/full/all/es2019 145468530 ns/iter (± 12263439) 151492954 ns/iter (± 7637375) 0.96
es/full/all/es2020 141728209 ns/iter (± 10899531) 147871684 ns/iter (± 8931136) 0.96
es/full/parser 737874 ns/iter (± 39137) 703963 ns/iter (± 32084) 1.05
es/full/base/fixer 26408 ns/iter (± 1510) 25635 ns/iter (± 709) 1.03
es/full/base/resolver_and_hygiene 93253 ns/iter (± 10068) 90651 ns/iter (± 2969) 1.03
serialization of ast node 208 ns/iter (± 13) 207 ns/iter (± 8) 1.00
serialization of serde 224 ns/iter (± 20) 220 ns/iter (± 6) 1.02

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: aa28aa0 Previous: 9b58cce Ratio
es/full/minify/libraries/terser 877762498 ns/iter (± 345457424) 333505796 ns/iter (± 5194108) 2.63

This comment was automatically generated by workflow using github-action-benchmark.

CC: @kdy1

Please sign in to comment.