diff --git a/linter-4.2/src/TypeScriptLinter.ts b/linter-4.2/src/TypeScriptLinter.ts index dafd72b8f1d912efe1952a629542784df6e0aaaa..8865b78c12b57475dceff1ae44b24baab5ee52d8 100644 --- a/linter-4.2/src/TypeScriptLinter.ts +++ b/linter-4.2/src/TypeScriptLinter.ts @@ -1040,6 +1040,9 @@ export class TypeScriptLinter { private handleClassDeclaration(node: ts.Node) { let tsClassDecl = node as ts.ClassDeclaration; + + this.staticBlocks.clear(); + if (tsClassDecl.name) this.countDeclarationsWithDuplicateName( this.tsTypeChecker.getSymbolAtLocation(tsClassDecl.name), diff --git a/linter/src/TypeScriptLinter.ts b/linter/src/TypeScriptLinter.ts index 0c9ef14d4897509d355949949a7b778220bbacfb..63b0c6779dfdfe22db153f35e501767e0632b681 100644 --- a/linter/src/TypeScriptLinter.ts +++ b/linter/src/TypeScriptLinter.ts @@ -1014,6 +1014,7 @@ export class TypeScriptLinter { private handleClassDeclaration(node: ts.Node) { let tsClassDecl = node as ts.ClassDeclaration; + this.staticBlocks.clear(); if (tsClassDecl.name) { this.countDeclarationsWithDuplicateName( this.tsTypeChecker.getSymbolAtLocation(tsClassDecl.name), diff --git a/linter/test/class_static_block.ts b/linter/test/class_static_block.ts index 82371491ad47d3bdce635a9333bcef96a0eb1e8d..69a1403710e3f6788a01846b3468d693dfa1c811 100644 --- a/linter/test/class_static_block.ts +++ b/linter/test/class_static_block.ts @@ -33,3 +33,23 @@ class B { static n: number; } + +{ + class C { + static t: string + static { + C.t = "aa" + C.t = C.t + "bb" + } + } +} + +{ + class C { + static s: string + static { + C.s = "aa" + C.s = C.s + "bb" + } + } +} \ No newline at end of file