diff --git a/src/rules/noBadReferenceRule.ts b/src/rules/noBadReferenceRule.ts index ad3da989..b1cacbb6 100644 --- a/src/rules/noBadReferenceRule.ts +++ b/src/rules/noBadReferenceRule.ts @@ -1,3 +1,4 @@ +import * as path from "path"; import * as Lint from "tslint"; import * as ts from "typescript"; @@ -29,7 +30,8 @@ function walk(ctx: Lint.WalkContext): void { const { sourceFile } = ctx; for (const ref of sourceFile.referencedFiles) { if (sourceFile.isDeclarationFile) { - if (ref.fileName.startsWith("..")) { + const dirPath = path.dirname(sourceFile.fileName); + if (path.normalize(ref.fileName).startsWith(/^ts\d+\.\d$/.test(path.basename(dirPath)) ? "../.." : "..")) { ctx.addFailure(ref.pos, ref.end, Rule.FAILURE_STRING); } } else { diff --git a/test/no-bad-reference/ts2.0/index.d.ts.lint b/test/no-bad-reference/ts2.0/index.d.ts.lint new file mode 100644 index 00000000..3fc2ceea --- /dev/null +++ b/test/no-bad-reference/ts2.0/index.d.ts.lint @@ -0,0 +1 @@ +///