Skip to content

Commit

Permalink
fix(es/lints): Allow overload in typescript (#5116)
Browse files Browse the repository at this point in the history
  • Loading branch information
Austaras committed Jul 5, 2022
1 parent 5a5cfb7 commit bef8aeb
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
13 changes: 9 additions & 4 deletions crates/swc_ecma_lints/src/rules/duplicate_bindings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,16 @@ impl DuplicateBindings {
fn visit_with_stmt_like<T: StmtLike + VisitWith<Self>>(&mut self, s: &[T]) {
let mut fn_name = AHashMap::default();
for s in s {
if let Some(Stmt::Decl(Decl::Fn(s))) = s.as_stmt() {
if let Some(prev) = fn_name.get(&s.ident.sym) {
emit_error(&s.ident.sym, s.ident.span, *prev)
if let Some(Stmt::Decl(Decl::Fn(FnDecl {
ident,
function: Function { body: Some(_), .. },
..
}))) = s.as_stmt()
{
if let Some(prev) = fn_name.get(&ident.sym) {
emit_error(&ident.sym, ident.span, *prev)
} else {
fn_name.insert(s.ident.sym.clone(), s.ident.span);
fn_name.insert(ident.sym.clone(), ident.span);
}
}

Expand Down
11 changes: 11 additions & 0 deletions crates/swc_ecma_lints/tests/pass/issue-5115/1/input.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function makeDate(timestamp: number): Date;
function makeDate(m: number, d: number, y: number): Date;
function makeDate(mOrTimestamp: number, d?: number, y?: number): Date {
if (d !== undefined && y !== undefined) {
return new Date(y, mOrTimestamp, d);
} else {
return new Date(mOrTimestamp);
}
}

export {}

1 comment on commit bef8aeb

@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: bef8aeb Previous: 528d4c5 Ratio
es/full/minify/libraries/antd 1758186947 ns/iter (± 68279867) 1670880290 ns/iter (± 23649704) 1.05
es/full/minify/libraries/d3 462142462 ns/iter (± 25284067) 425934268 ns/iter (± 17437382) 1.09
es/full/minify/libraries/echarts 1757346507 ns/iter (± 115085655) 1606465585 ns/iter (± 20122985) 1.09
es/full/minify/libraries/jquery 113878937 ns/iter (± 8570440) 86121112 ns/iter (± 2053233) 1.32
es/full/minify/libraries/lodash 143956466 ns/iter (± 9064548) 114559835 ns/iter (± 2006343) 1.26
es/full/minify/libraries/moment 62069206 ns/iter (± 4302931) 51042345 ns/iter (± 629677) 1.22
es/full/minify/libraries/react 20700405 ns/iter (± 4261479) 18059759 ns/iter (± 552542) 1.15
es/full/minify/libraries/terser 641719397 ns/iter (± 51612064) 604130759 ns/iter (± 14383284) 1.06
es/full/minify/libraries/three 566688370 ns/iter (± 47401752) 564557871 ns/iter (± 10277210) 1.00
es/full/minify/libraries/typescript 3754294522 ns/iter (± 133172812) 3512633851 ns/iter (± 62436155) 1.07
es/full/minify/libraries/victory 776367455 ns/iter (± 48976443) 719703399 ns/iter (± 10156353) 1.08
es/full/minify/libraries/vue 134794816 ns/iter (± 5204243) 139592639 ns/iter (± 5102892) 0.97
es/full/codegen/es3 32501 ns/iter (± 1482) 31028 ns/iter (± 747) 1.05
es/full/codegen/es5 32199 ns/iter (± 488) 31464 ns/iter (± 781) 1.02
es/full/codegen/es2015 32293 ns/iter (± 1207) 31596 ns/iter (± 822) 1.02
es/full/codegen/es2016 32415 ns/iter (± 2238) 31308 ns/iter (± 369) 1.04
es/full/codegen/es2017 32441 ns/iter (± 1463) 31571 ns/iter (± 289) 1.03
es/full/codegen/es2018 32372 ns/iter (± 1194) 31629 ns/iter (± 321) 1.02
es/full/codegen/es2019 32288 ns/iter (± 1363) 31573 ns/iter (± 455) 1.02
es/full/codegen/es2020 32009 ns/iter (± 573) 31620 ns/iter (± 820) 1.01
es/full/all/es3 190552070 ns/iter (± 13749926) 192550347 ns/iter (± 14830857) 0.99
es/full/all/es5 169022391 ns/iter (± 6954254) 169545223 ns/iter (± 3728514) 1.00
es/full/all/es2015 141433629 ns/iter (± 9119774) 139017211 ns/iter (± 5255374) 1.02
es/full/all/es2016 137862944 ns/iter (± 3938258) 145618573 ns/iter (± 4156762) 0.95
es/full/all/es2017 152248735 ns/iter (± 15489252) 148109631 ns/iter (± 6340553) 1.03
es/full/all/es2018 141493556 ns/iter (± 11115415) 138265111 ns/iter (± 11151880) 1.02
es/full/all/es2019 134962649 ns/iter (± 5065972) 133184643 ns/iter (± 4662448) 1.01
es/full/all/es2020 132009184 ns/iter (± 6439143) 130356052 ns/iter (± 5401585) 1.01
es/full/parser 708755 ns/iter (± 22784) 714642 ns/iter (± 36136) 0.99
es/full/base/fixer 29651 ns/iter (± 553) 29849 ns/iter (± 725) 0.99
es/full/base/resolver_and_hygiene 88205 ns/iter (± 1764) 87985 ns/iter (± 1715) 1.00
serialization of ast node 214 ns/iter (± 2) 214 ns/iter (± 4) 1
serialization of serde 227 ns/iter (± 1) 225 ns/iter (± 3) 1.01

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

Please sign in to comment.