diff --git a/src/compiler/transformers/ts.ts b/src/compiler/transformers/ts.ts index 15c95643d05..547fe1f1bb6 100644 --- a/src/compiler/transformers/ts.ts +++ b/src/compiler/transformers/ts.ts @@ -1910,6 +1910,7 @@ namespace ts { case SyntaxKind.TypeLiteral: case SyntaxKind.AnyKeyword: case SyntaxKind.ThisType: + case SyntaxKind.ImportType: break; default: diff --git a/tests/baselines/reference/metadataImportType.errors.txt b/tests/baselines/reference/metadataImportType.errors.txt new file mode 100644 index 00000000000..31824696a0b --- /dev/null +++ b/tests/baselines/reference/metadataImportType.errors.txt @@ -0,0 +1,13 @@ +tests/cases/compiler/metadataImportType.ts(2,6): error TS2304: Cannot find name 'test'. +tests/cases/compiler/metadataImportType.ts(3,8): error TS2307: Cannot find module './b'. + + +==== tests/cases/compiler/metadataImportType.ts (2 errors) ==== + export class A { + @test + ~~~~ +!!! error TS2304: Cannot find name 'test'. + b: import('./b').B + ~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module './b'. + } \ No newline at end of file diff --git a/tests/baselines/reference/metadataImportType.js b/tests/baselines/reference/metadataImportType.js new file mode 100644 index 00000000000..9457a282582 --- /dev/null +++ b/tests/baselines/reference/metadataImportType.js @@ -0,0 +1,28 @@ +//// [metadataImportType.ts] +export class A { + @test + b: import('./b').B +} + +//// [metadataImportType.js] +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +exports.__esModule = true; +var A = /** @class */ (function () { + function A() { + } + __decorate([ + test, + __metadata("design:type", Object) + ], A.prototype, "b"); + return A; +}()); +exports.A = A; diff --git a/tests/baselines/reference/metadataImportType.symbols b/tests/baselines/reference/metadataImportType.symbols new file mode 100644 index 00000000000..ce16caa805c --- /dev/null +++ b/tests/baselines/reference/metadataImportType.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/metadataImportType.ts === +export class A { +>A : Symbol(A, Decl(metadataImportType.ts, 0, 0)) + + @test + b: import('./b').B +>b : Symbol(A.b, Decl(metadataImportType.ts, 0, 16)) +} diff --git a/tests/baselines/reference/metadataImportType.types b/tests/baselines/reference/metadataImportType.types new file mode 100644 index 00000000000..05ba1bc9924 --- /dev/null +++ b/tests/baselines/reference/metadataImportType.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/metadataImportType.ts === +export class A { +>A : A + + @test +>test : any + + b: import('./b').B +>b : any +>B : No type information available! +} diff --git a/tests/cases/compiler/metadataImportType.ts b/tests/cases/compiler/metadataImportType.ts new file mode 100644 index 00000000000..531764f574a --- /dev/null +++ b/tests/cases/compiler/metadataImportType.ts @@ -0,0 +1,6 @@ +// @experimentalDecorators: true +// @emitDecoratorMetadata: true +export class A { + @test + b: import('./b').B +} \ No newline at end of file