From f83248880140e0a6fe620082e7f04f39a80ea1d9 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Mon, 6 Jun 2016 08:14:49 -0700 Subject: [PATCH] Add "implicit any" warning for shorthand ambient modules --- src/compiler/checker.ts | 6 ++++++ .../reference/ambientShorthand_isImplicitAny.errors.txt | 8 ++++++++ .../baselines/reference/ambientShorthand_isImplicitAny.js | 5 +++++ .../conformance/ambient/ambientShorthand_isImplicitAny.ts | 2 ++ 4 files changed, 21 insertions(+) create mode 100644 tests/baselines/reference/ambientShorthand_isImplicitAny.errors.txt create mode 100644 tests/baselines/reference/ambientShorthand_isImplicitAny.js create mode 100644 tests/cases/conformance/ambient/ambientShorthand_isImplicitAny.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index c28502907d7..10cdd6126b2 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -16048,6 +16048,12 @@ namespace ts { } } } + + if (compilerOptions.noImplicitAny && !node.body) { + // Ambient shorthand module is an implicit any + reportImplicitAnyError(node, anyType); + } + if (node.body) { checkSourceElement(node.body); } diff --git a/tests/baselines/reference/ambientShorthand_isImplicitAny.errors.txt b/tests/baselines/reference/ambientShorthand_isImplicitAny.errors.txt new file mode 100644 index 00000000000..875a656202d --- /dev/null +++ b/tests/baselines/reference/ambientShorthand_isImplicitAny.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/ambient/ambientShorthand_isImplicitAny.ts(1,16): error TS7005: Variable '"jquery"' implicitly has an 'any' type. + + +==== tests/cases/conformance/ambient/ambientShorthand_isImplicitAny.ts (1 errors) ==== + declare module "jquery"; + ~~~~~~~~ +!!! error TS7005: Variable '"jquery"' implicitly has an 'any' type. + \ No newline at end of file diff --git a/tests/baselines/reference/ambientShorthand_isImplicitAny.js b/tests/baselines/reference/ambientShorthand_isImplicitAny.js new file mode 100644 index 00000000000..ab05d2a9979 --- /dev/null +++ b/tests/baselines/reference/ambientShorthand_isImplicitAny.js @@ -0,0 +1,5 @@ +//// [ambientShorthand_isImplicitAny.ts] +declare module "jquery"; + + +//// [ambientShorthand_isImplicitAny.js] diff --git a/tests/cases/conformance/ambient/ambientShorthand_isImplicitAny.ts b/tests/cases/conformance/ambient/ambientShorthand_isImplicitAny.ts new file mode 100644 index 00000000000..bf7de709ef2 --- /dev/null +++ b/tests/cases/conformance/ambient/ambientShorthand_isImplicitAny.ts @@ -0,0 +1,2 @@ +// @noImplicitAny: true +declare module "jquery";