Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5d8db8d

Browse files
armano2JamesHenry
authored andcommitted
feat: update abstract class node (typescript-eslint#75)
1 parent 5428a76 commit 5d8db8d

File tree

13 files changed

+327
-160
lines changed

13 files changed

+327
-160
lines changed

packages/eslint-plugin-typescript/lib/rules/class-name-casing.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,7 @@ module.exports = {
5454
switch (decl.type) {
5555
case 'ClassDeclaration':
5656
case 'ClassExpression':
57-
friendlyName = 'Class';
58-
break;
59-
case 'TSAbstractClassDeclaration':
60-
friendlyName = 'Abstract class';
57+
friendlyName = decl.abstract ? 'Abstract class' : 'Class';
6158
break;
6259
case 'TSInterfaceDeclaration':
6360
friendlyName = 'Interface';
@@ -81,9 +78,7 @@ module.exports = {
8178
//----------------------------------------------------------------------
8279

8380
return {
84-
'ClassDeclaration, TSInterfaceDeclaration, TSAbstractClassDeclaration, ClassExpression'(
85-
node
86-
) {
81+
'ClassDeclaration, TSInterfaceDeclaration, ClassExpression'(node) {
8782
// class expressions (i.e. export default class {}) are OK
8883
if (node.id && !isPascalCase(node.id.name)) {
8984
report(node);

packages/eslint-plugin-typescript/lib/rules/indent.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ const KNOWN_NODES = new Set([
2929
'TSNullKeyword',
3030

3131
// ts specific nodes we want to support
32-
'TSAbstractClassDeclaration',
3332
'TSAbstractClassProperty',
3433
'TSAbstractMethodDefinition',
3534
'TSArrayType',

packages/eslint-plugin-typescript/tests/lib/eslint-rules/no-shadow.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ ruleTester.run('no-shadow', rule, {
2222
`
2323
type foo = any;
2424
function bar(foo: any) {}
25+
`,
26+
// https://github.com/typescript-eslint/typescript-eslint/issues/20
27+
`
28+
export abstract class Foo {}
29+
export class FooBar extends Foo {}
2530
`
2631
],
2732
invalid: []

packages/eslint-plugin-typescript/tests/lib/eslint-rules/no-undef.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ interface Runnable {
6161
export type SomeThing = {
6262
id: string;
6363
}
64+
`,
65+
// https://github.com/typescript-eslint/typescript-eslint/issues/20
66+
`
67+
export abstract class Foo {}
68+
export class FooBar extends Foo {}
6469
`
6570
],
6671
invalid: []

packages/eslint-plugin-typescript/tests/lib/rules/indent.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function nonTsTestCase(example) {
2222

2323
const individualNodeTests = [
2424
{
25-
node: 'TSAbstractClassDeclaration',
25+
node: 'ClassDeclaration',
2626
code: [
2727
`
2828
abstract class Foo {
@@ -157,7 +157,7 @@ interface Foo {
157157
]
158158
},
159159
{
160-
node: 'TSEmptyBodyDeclareFunction',
160+
node: 'TSDeclareFunction',
161161
code: [
162162
`
163163
declare function foo() : {

packages/typescript-eslint-parser/src/analyze-scope.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ class Referencer extends OriginalReferencer {
202202
/**
203203
* Override.
204204
* Visit decorators.
205-
* @param {ClassDeclaration|ClassExpression|TSAbstractClassDeclaration} node The class node to visit.
205+
* @param {ClassDeclaration|ClassExpression} node The class node to visit.
206206
* @returns {void}
207207
*/
208208
visitClass(node: any) {
@@ -709,9 +709,6 @@ class Referencer extends OriginalReferencer {
709709
this.close(node);
710710
}
711711

712-
TSAbstractClassDeclaration(node: any) {
713-
this.ClassDeclaration(node);
714-
}
715712
TSAbstractClassProperty(node: any) {
716713
this.ClassProperty(node);
717714
}

packages/typescript-eslint-parser/src/visitor-keys.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,6 @@ export const visitorKeys = eslintVisitorKeys.unionWith({
3636
ClassProperty: ['decorators', 'key', 'typeAnnotation', 'value'],
3737
Decorator: ['expression'],
3838
TSAbstractClassProperty: ['decorators', 'key', 'typeAnnotation', 'value'],
39-
TSAbstractClassDeclaration: [
40-
'decorators',
41-
'id',
42-
'typeParameters',
43-
'superClass',
44-
'superTypeParameters',
45-
'implements',
46-
'body'
47-
],
4839
TSAbstractKeyword: [],
4940
TSAbstractMethodDefinition: ['key', 'value'],
5041
TSAnyKeyword: [],

0 commit comments

Comments
 (0)