-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(es/parser): Adjust context while parsing type arguments of TypeSc…
- Loading branch information
Showing
3 changed files
with
239 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
const example = () => { | ||
return { | ||
func: callback<typeof something<Type1, Type2>>(options => null) | ||
}; | ||
}; |
229 changes: 229 additions & 0 deletions
229
crates/swc_ecma_parser/tests/typescript/issue-7580/input.tsx.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
{ | ||
"type": "Script", | ||
"span": { | ||
"start": 1, | ||
"end": 119, | ||
"ctxt": 0 | ||
}, | ||
"body": [ | ||
{ | ||
"type": "VariableDeclaration", | ||
"span": { | ||
"start": 1, | ||
"end": 119, | ||
"ctxt": 0 | ||
}, | ||
"kind": "const", | ||
"declare": false, | ||
"declarations": [ | ||
{ | ||
"type": "VariableDeclarator", | ||
"span": { | ||
"start": 7, | ||
"end": 118, | ||
"ctxt": 0 | ||
}, | ||
"id": { | ||
"type": "Identifier", | ||
"span": { | ||
"start": 7, | ||
"end": 14, | ||
"ctxt": 0 | ||
}, | ||
"value": "example", | ||
"optional": false, | ||
"typeAnnotation": null | ||
}, | ||
"init": { | ||
"type": "ArrowFunctionExpression", | ||
"span": { | ||
"start": 17, | ||
"end": 118, | ||
"ctxt": 0 | ||
}, | ||
"params": [], | ||
"body": { | ||
"type": "BlockStatement", | ||
"span": { | ||
"start": 23, | ||
"end": 118, | ||
"ctxt": 0 | ||
}, | ||
"stmts": [ | ||
{ | ||
"type": "ReturnStatement", | ||
"span": { | ||
"start": 29, | ||
"end": 114, | ||
"ctxt": 0 | ||
}, | ||
"argument": { | ||
"type": "ObjectExpression", | ||
"span": { | ||
"start": 36, | ||
"end": 113, | ||
"ctxt": 0 | ||
}, | ||
"properties": [ | ||
{ | ||
"type": "KeyValueProperty", | ||
"key": { | ||
"type": "Identifier", | ||
"span": { | ||
"start": 44, | ||
"end": 48, | ||
"ctxt": 0 | ||
}, | ||
"value": "func", | ||
"optional": false | ||
}, | ||
"value": { | ||
"type": "CallExpression", | ||
"span": { | ||
"start": 50, | ||
"end": 107, | ||
"ctxt": 0 | ||
}, | ||
"callee": { | ||
"type": "Identifier", | ||
"span": { | ||
"start": 50, | ||
"end": 58, | ||
"ctxt": 0 | ||
}, | ||
"value": "callback", | ||
"optional": false | ||
}, | ||
"arguments": [ | ||
{ | ||
"spread": null, | ||
"expression": { | ||
"type": "ArrowFunctionExpression", | ||
"span": { | ||
"start": 91, | ||
"end": 106, | ||
"ctxt": 0 | ||
}, | ||
"params": [ | ||
{ | ||
"type": "Identifier", | ||
"span": { | ||
"start": 91, | ||
"end": 98, | ||
"ctxt": 0 | ||
}, | ||
"value": "options", | ||
"optional": false, | ||
"typeAnnotation": null | ||
} | ||
], | ||
"body": { | ||
"type": "NullLiteral", | ||
"span": { | ||
"start": 102, | ||
"end": 106, | ||
"ctxt": 0 | ||
} | ||
}, | ||
"async": false, | ||
"generator": false, | ||
"typeParameters": null, | ||
"returnType": null | ||
} | ||
} | ||
], | ||
"typeArguments": { | ||
"type": "TsTypeParameterInstantiation", | ||
"span": { | ||
"start": 58, | ||
"end": 90, | ||
"ctxt": 0 | ||
}, | ||
"params": [ | ||
{ | ||
"type": "TsTypeQuery", | ||
"span": { | ||
"start": 59, | ||
"end": 89, | ||
"ctxt": 0 | ||
}, | ||
"exprName": { | ||
"type": "Identifier", | ||
"span": { | ||
"start": 66, | ||
"end": 75, | ||
"ctxt": 0 | ||
}, | ||
"value": "something", | ||
"optional": false | ||
}, | ||
"typeArguments": { | ||
"type": "TsTypeParameterInstantiation", | ||
"span": { | ||
"start": 75, | ||
"end": 89, | ||
"ctxt": 0 | ||
}, | ||
"params": [ | ||
{ | ||
"type": "TsTypeReference", | ||
"span": { | ||
"start": 76, | ||
"end": 81, | ||
"ctxt": 0 | ||
}, | ||
"typeName": { | ||
"type": "Identifier", | ||
"span": { | ||
"start": 76, | ||
"end": 81, | ||
"ctxt": 0 | ||
}, | ||
"value": "Type1", | ||
"optional": false | ||
}, | ||
"typeParams": null | ||
}, | ||
{ | ||
"type": "TsTypeReference", | ||
"span": { | ||
"start": 83, | ||
"end": 88, | ||
"ctxt": 0 | ||
}, | ||
"typeName": { | ||
"type": "Identifier", | ||
"span": { | ||
"start": 83, | ||
"end": 88, | ||
"ctxt": 0 | ||
}, | ||
"value": "Type2", | ||
"optional": false | ||
}, | ||
"typeParams": null | ||
} | ||
] | ||
} | ||
} | ||
] | ||
} | ||
} | ||
} | ||
] | ||
} | ||
} | ||
] | ||
}, | ||
"async": false, | ||
"generator": false, | ||
"typeParameters": null, | ||
"returnType": null | ||
}, | ||
"definite": false | ||
} | ||
] | ||
} | ||
], | ||
"interpreter": null | ||
} |
9d5dda1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark
es/full/bugs-1
308863
ns/iter (± 6912
)301869
ns/iter (± 2263
)1.02
es/full/minify/libraries/antd
1475692302
ns/iter (± 25623340
)1494960646
ns/iter (± 37692626
)0.99
es/full/minify/libraries/d3
319296450
ns/iter (± 4521675
)314401510
ns/iter (± 1722406
)1.02
es/full/minify/libraries/echarts
1193296347
ns/iter (± 17382712
)1198633649
ns/iter (± 20227071
)1.00
es/full/minify/libraries/jquery
95289533
ns/iter (± 299445
)95059428
ns/iter (± 1252894
)1.00
es/full/minify/libraries/lodash
113436439
ns/iter (± 493861
)112853315
ns/iter (± 1035821
)1.01
es/full/minify/libraries/moment
56061465
ns/iter (± 147943
)55727326
ns/iter (± 242310
)1.01
es/full/minify/libraries/react
20111498
ns/iter (± 22224
)20002992
ns/iter (± 49248
)1.01
es/full/minify/libraries/terser
247201297
ns/iter (± 2327112
)247522012
ns/iter (± 3350955
)1.00
es/full/minify/libraries/three
438426730
ns/iter (± 11259811
)443275624
ns/iter (± 7830551
)0.99
es/full/minify/libraries/typescript
3019284460
ns/iter (± 37988819
)2980433299
ns/iter (± 36449860
)1.01
es/full/minify/libraries/victory
656060774
ns/iter (± 7739494
)645059214
ns/iter (± 19802358
)1.02
es/full/minify/libraries/vue
138583621
ns/iter (± 1431198
)139130484
ns/iter (± 2705629
)1.00
es/full/codegen/es3
37341
ns/iter (± 52
)37183
ns/iter (± 114
)1.00
es/full/codegen/es5
37305
ns/iter (± 61
)37140
ns/iter (± 97
)1.00
es/full/codegen/es2015
37203
ns/iter (± 63
)37135
ns/iter (± 65
)1.00
es/full/codegen/es2016
37315
ns/iter (± 73
)37104
ns/iter (± 62
)1.01
es/full/codegen/es2017
37263
ns/iter (± 73
)37111
ns/iter (± 66
)1.00
es/full/codegen/es2018
37293
ns/iter (± 84
)37143
ns/iter (± 106
)1.00
es/full/codegen/es2019
37299
ns/iter (± 109
)37156
ns/iter (± 61
)1.00
es/full/codegen/es2020
37284
ns/iter (± 46
)37131
ns/iter (± 109
)1.00
es/full/all/es3
179792081
ns/iter (± 869664
)178692587
ns/iter (± 1506349
)1.01
es/full/all/es5
171806579
ns/iter (± 1554046
)170918901
ns/iter (± 1218719
)1.01
es/full/all/es2015
127488757
ns/iter (± 538459
)127471209
ns/iter (± 685222
)1.00
es/full/all/es2016
127102643
ns/iter (± 780297
)126284072
ns/iter (± 758335
)1.01
es/full/all/es2017
126259163
ns/iter (± 562203
)126030613
ns/iter (± 527115
)1.00
es/full/all/es2018
124088892
ns/iter (± 506029
)123888354
ns/iter (± 877073
)1.00
es/full/all/es2019
123634339
ns/iter (± 506801
)122962961
ns/iter (± 1070751
)1.01
es/full/all/es2020
118539342
ns/iter (± 635187
)118316606
ns/iter (± 492015
)1.00
es/full/parser
514549
ns/iter (± 5411
)504171
ns/iter (± 6282
)1.02
es/full/base/fixer
18784
ns/iter (± 205
)18486
ns/iter (± 95
)1.02
es/full/base/resolver_and_hygiene
94927
ns/iter (± 311
)92576
ns/iter (± 190
)1.03
serialization of serde
301
ns/iter (± 0
)301
ns/iter (± 0
)1
css/minify/libraries/bootstrap
31297145
ns/iter (± 282495
)30913695
ns/iter (± 193347
)1.01
css/visitor/compare/clone
1942842
ns/iter (± 11500
)2165557
ns/iter (± 12343
)0.90
css/visitor/compare/visit_mut_span
2060082
ns/iter (± 14753
)2299636
ns/iter (± 9197
)0.90
css/visitor/compare/visit_mut_span_panic
2138687
ns/iter (± 13331
)2375462
ns/iter (± 8020
)0.90
css/visitor/compare/fold_span
2826169
ns/iter (± 11621
)3067915
ns/iter (± 12572
)0.92
css/visitor/compare/fold_span_panic
3022190
ns/iter (± 13011
)3280533
ns/iter (± 28558
)0.92
css/lexer/bootstrap_5_1_3
4809602
ns/iter (± 4169
)4699434
ns/iter (± 6915
)1.02
css/lexer/foundation_6_7_4
4047562
ns/iter (± 1865
)3978329
ns/iter (± 5171
)1.02
css/lexer/tailwind_3_1_1
772953
ns/iter (± 470
)759640
ns/iter (± 1617
)1.02
css/parser/bootstrap_5_1_3
20435096
ns/iter (± 98043
)20530556
ns/iter (± 34447
)1.00
css/parser/foundation_6_7_4
16474452
ns/iter (± 33905
)16526508
ns/iter (± 50098
)1.00
css/parser/tailwind_3_1_1
3198893
ns/iter (± 5870
)3186893
ns/iter (± 5199
)1.00
es/codegen/colors
743051
ns/iter (± 403325
)740541
ns/iter (± 405229
)1.00
es/codegen/large
2978990
ns/iter (± 1570143
)2989954
ns/iter (± 1557080
)1.00
es/codegen/with-parser/colors
48512
ns/iter (± 271
)49393
ns/iter (± 294
)0.98
es/codegen/with-parser/large
516151
ns/iter (± 669
)517241
ns/iter (± 1085
)1.00
es/minify/libraries/antd
1314259791
ns/iter (± 18132869
)1351127040
ns/iter (± 24190387
)0.97
es/minify/libraries/d3
285889358
ns/iter (± 4391454
)284426796
ns/iter (± 6254619
)1.01
es/minify/libraries/echarts
1051602666
ns/iter (± 9309362
)1045733878
ns/iter (± 8637052
)1.01
es/minify/libraries/jquery
84761849
ns/iter (± 726229
)84443598
ns/iter (± 778954
)1.00
es/minify/libraries/lodash
103265103
ns/iter (± 290834
)103323997
ns/iter (± 291595
)1.00
es/minify/libraries/moment
49701799
ns/iter (± 102602
)49656693
ns/iter (± 261941
)1.00
es/minify/libraries/react
18179800
ns/iter (± 63918
)18151701
ns/iter (± 92558
)1.00
es/minify/libraries/terser
214756123
ns/iter (± 710463
)215468126
ns/iter (± 1415660
)1.00
es/minify/libraries/three
376778806
ns/iter (± 8319557
)375572310
ns/iter (± 8587280
)1.00
es/minify/libraries/typescript
2612213225
ns/iter (± 27797137
)2604474428
ns/iter (± 27945578
)1.00
es/minify/libraries/victory
555253989
ns/iter (± 4618649
)562121588
ns/iter (± 7571808
)0.99
es/minify/libraries/vue
124545213
ns/iter (± 632055
)125500795
ns/iter (± 1092926
)0.99
es/visitor/compare/clone
2070451
ns/iter (± 9381
)2075229
ns/iter (± 6152
)1.00
es/visitor/compare/visit_mut_span
2393444
ns/iter (± 2312
)2403968
ns/iter (± 2959
)1.00
es/visitor/compare/visit_mut_span_panic
2457445
ns/iter (± 6411
)2461563
ns/iter (± 3733
)1.00
es/visitor/compare/fold_span
3480824
ns/iter (± 3972
)3535190
ns/iter (± 43752
)0.98
es/visitor/compare/fold_span_panic
3622180
ns/iter (± 6197
)3603859
ns/iter (± 15671
)1.01
es/lexer/colors
13085
ns/iter (± 31
)13209
ns/iter (± 12
)0.99
es/lexer/angular
6239744
ns/iter (± 20677
)6291139
ns/iter (± 20296
)0.99
es/lexer/backbone
821309
ns/iter (± 2791
)819910
ns/iter (± 465
)1.00
es/lexer/jquery
4619996
ns/iter (± 2955
)4636649
ns/iter (± 8171
)1.00
es/lexer/jquery mobile
7057622
ns/iter (± 23248
)7110193
ns/iter (± 7596
)0.99
es/lexer/mootools
3619671
ns/iter (± 1434
)3653725
ns/iter (± 1202
)0.99
es/lexer/underscore
677725
ns/iter (± 2810
)688436
ns/iter (± 451
)0.98
es/lexer/three
21535632
ns/iter (± 39165
)21643880
ns/iter (± 53802
)0.99
es/lexer/yui
4060189
ns/iter (± 2262
)4098642
ns/iter (± 13096
)0.99
es/parser/colors
29102
ns/iter (± 58
)28612
ns/iter (± 48
)1.02
es/parser/angular
14242200
ns/iter (± 138516
)14416036
ns/iter (± 240633
)0.99
es/parser/backbone
2116541
ns/iter (± 10068
)2126423
ns/iter (± 14266
)1.00
es/parser/jquery
11551697
ns/iter (± 51433
)11597193
ns/iter (± 62853
)1.00
es/parser/jquery mobile
17708029
ns/iter (± 61183
)17908313
ns/iter (± 327037
)0.99
es/parser/mootools
8813210
ns/iter (± 19632
)8886367
ns/iter (± 29833
)0.99
es/parser/underscore
1822634
ns/iter (± 21173
)1833494
ns/iter (± 10346
)0.99
es/parser/three
49195553
ns/iter (± 294981
)50334634
ns/iter (± 779819
)0.98
es/parser/yui
8906517
ns/iter (± 26843
)8904352
ns/iter (± 33663
)1.00
es/preset-env/usage/builtin_type
144577
ns/iter (± 33219
)144513
ns/iter (± 33466
)1.00
es/preset-env/usage/property
18515
ns/iter (± 63
)19000
ns/iter (± 86
)0.97
es/resolver/typescript
97049789
ns/iter (± 1226009
)96595672
ns/iter (± 1967273
)1.00
es/fixer/typescript
67564417
ns/iter (± 1275464
)67487689
ns/iter (± 868520
)1.00
es/hygiene/typescript
144208687
ns/iter (± 2376305
)144284787
ns/iter (± 2544496
)1.00
es/resolver_with_hygiene/typescript
306531284
ns/iter (± 3063980
)305667551
ns/iter (± 5074585
)1.00
es/visitor/base-perf/module_clone
61235
ns/iter (± 387
)61870
ns/iter (± 300
)0.99
es/visitor/base-perf/fold_empty
64609
ns/iter (± 250
)65063
ns/iter (± 207
)0.99
es/visitor/base-perf/fold_noop_impl_all
65016
ns/iter (± 451
)65393
ns/iter (± 353
)0.99
es/visitor/base-perf/fold_noop_impl_vec
65132
ns/iter (± 223
)65696
ns/iter (± 385
)0.99
es/visitor/base-perf/boxing_boxed_clone
58
ns/iter (± 0
)56
ns/iter (± 0
)1.04
es/visitor/base-perf/boxing_unboxed_clone
40
ns/iter (± 0
)40
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
113
ns/iter (± 0
)117
ns/iter (± 0
)0.97
es/visitor/base-perf/boxing_unboxed
80
ns/iter (± 0
)83
ns/iter (± 0
)0.96
es/visitor/base-perf/visit_empty
0
ns/iter (± 0
)0
ns/iter (± 0
)NaN
es/visitor/base-perf/visit_contains_this
2691
ns/iter (± 20
)2628
ns/iter (± 11
)1.02
es/base/parallel/resolver/typescript
4644273250
ns/iter (± 314003879
)4413314902
ns/iter (± 275822967
)1.05
es/base/parallel/hygiene/typescript
1589372015
ns/iter (± 11462369
)1579742945
ns/iter (± 15643867
)1.01
misc/visitors/time-complexity/time 5
104
ns/iter (± 2
)103
ns/iter (± 2
)1.01
misc/visitors/time-complexity/time 10
267
ns/iter (± 0
)267
ns/iter (± 0
)1
misc/visitors/time-complexity/time 15
594
ns/iter (± 31
)516
ns/iter (± 10
)1.15
misc/visitors/time-complexity/time 20
900
ns/iter (± 3
)905
ns/iter (± 3
)0.99
misc/visitors/time-complexity/time 40
3564
ns/iter (± 13
)3567
ns/iter (± 15
)1.00
misc/visitors/time-complexity/time 60
7394
ns/iter (± 11
)7473
ns/iter (± 15
)0.99
es/full-target/es2016
242561
ns/iter (± 823
)241887
ns/iter (± 1331
)1.00
es/full-target/es2017
227147
ns/iter (± 1609
)229015
ns/iter (± 967
)0.99
es/full-target/es2018
216543
ns/iter (± 642
)215832
ns/iter (± 617
)1.00
es2020_nullish_coalescing
71953
ns/iter (± 423
)71949
ns/iter (± 223
)1.00
es2020_optional_chaining
83812
ns/iter (± 184
)83412
ns/iter (± 277
)1.00
es2022_class_properties
122755
ns/iter (± 307
)124277
ns/iter (± 308
)0.99
es2018_object_rest_spread
75007
ns/iter (± 307
)74593
ns/iter (± 313
)1.01
es2019_optional_catch_binding
64961
ns/iter (± 205
)65077
ns/iter (± 261
)1.00
es2017_async_to_generator
65398
ns/iter (± 161
)65277
ns/iter (± 200
)1.00
es2016_exponentiation
69894
ns/iter (± 333
)69637
ns/iter (± 204
)1.00
es2015_arrow
72880
ns/iter (± 251
)73327
ns/iter (± 186
)0.99
es2015_block_scoped_fn
70706
ns/iter (± 215
)70353
ns/iter (± 279
)1.01
es2015_block_scoping
132295
ns/iter (± 449
)134836
ns/iter (± 653
)0.98
This comment was automatically generated by workflow using github-action-benchmark.