Skip to content

Commit

Permalink
feat(eslint-plugin): [adjacent-overload-signatures] check BlockStatem…
Browse files Browse the repository at this point in the history
…ent nodes (#5998)

* fix(eslint-plugin): [adjacent-overload-signatures] check BlockStatement nodes

* fix: test cases

Co-authored-by: Josh Goldberg <git@joshuakgoldberg.com>
  • Loading branch information
lsdsjy and JoshuaKGoldberg committed Nov 17, 2022
1 parent ab88f77 commit 97d3e56
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 1 deletion.
Expand Up @@ -8,7 +8,8 @@ type RuleNode =
| TSESTree.Program
| TSESTree.TSModuleBlock
| TSESTree.TSTypeLiteral
| TSESTree.TSInterfaceBody;
| TSESTree.TSInterfaceBody
| TSESTree.BlockStatement;
type Member =
| TSESTree.ClassElement
| TSESTree.ProgramStatement
Expand Down Expand Up @@ -121,6 +122,7 @@ export default util.createRule({
case AST_NODE_TYPES.Program:
case AST_NODE_TYPES.TSModuleBlock:
case AST_NODE_TYPES.TSInterfaceBody:
case AST_NODE_TYPES.BlockStatement:
return node.body;

case AST_NODE_TYPES.TSTypeLiteral:
Expand Down Expand Up @@ -172,6 +174,7 @@ export default util.createRule({
TSModuleBlock: checkBodyForOverloadMethods,
TSTypeLiteral: checkBodyForOverloadMethods,
TSInterfaceBody: checkBodyForOverloadMethods,
BlockStatement: checkBodyForOverloadMethods,
};
},
});
Expand Up @@ -250,12 +250,64 @@ class Test {
'#private'(): void;
'#private'(arg: number): void {}
}
`,
// block statement
`
function wrap() {
function foo(s: string);
function foo(n: number);
function foo(sn: string | number) {}
}
`,
`
if (true) {
function foo(s: string);
function foo(n: number);
function foo(sn: string | number) {}
}
`,
],
invalid: [
{
code: `
function wrap() {
function foo(s: string);
function foo(n: number);
type bar = number;
function foo(sn: string | number) {}
}
`,
errors: [
{
messageId: 'adjacentSignature',
data: { name: 'foo' },
line: 6,
column: 3,
},
],
},
{
code: `
if (true) {
function foo(s: string);
function foo(n: number);
let a = 1;
function foo(sn: string | number) {}
foo(a);
}
`,
errors: [
{
messageId: 'adjacentSignature',
data: { name: 'foo' },
line: 6,
column: 3,
},
],
},
{
code: `
export function foo(s: string);
export function foo(n: number);
export function bar(): void {}
Expand Down

0 comments on commit 97d3e56

Please sign in to comment.