From f909c6c9f787affcf6edb54811e64a64dfd0b9cb Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Tue, 17 Mar 2015 14:06:06 -0700 Subject: [PATCH] Updated baselines --- .../decoratorOnArrowFunction.errors.txt | 16 +++++++ .../reference/decoratorOnArrowFunction.js | 10 +++++ .../baselines/reference/decoratorOnClass1.js | 24 ++++++++++ .../reference/decoratorOnClass1.types | 14 ++++++ .../baselines/reference/decoratorOnClass2.js | 25 +++++++++++ .../reference/decoratorOnClass2.types | 14 ++++++ .../reference/decoratorOnClass3.errors.txt | 12 +++++ .../baselines/reference/decoratorOnClass3.js | 25 +++++++++++ .../baselines/reference/decoratorOnClass4.js | 24 ++++++++++ .../reference/decoratorOnClass4.types | 15 +++++++ .../baselines/reference/decoratorOnClass5.js | 24 ++++++++++ .../reference/decoratorOnClass5.types | 15 +++++++ .../reference/decoratorOnClass8.errors.txt | 11 +++++ .../baselines/reference/decoratorOnClass8.js | 24 ++++++++++ .../reference/decoratorOnClassAccessor1.js | 31 +++++++++++++ .../reference/decoratorOnClassAccessor1.types | 19 ++++++++ .../reference/decoratorOnClassAccessor2.js | 31 +++++++++++++ .../reference/decoratorOnClassAccessor2.types | 19 ++++++++ .../decoratorOnClassAccessor3.errors.txt | 35 +++++++++++++++ .../reference/decoratorOnClassAccessor3.js | 19 ++++++++ .../reference/decoratorOnClassAccessor4.js | 30 +++++++++++++ .../reference/decoratorOnClassAccessor4.types | 20 +++++++++ .../reference/decoratorOnClassAccessor5.js | 30 +++++++++++++ .../reference/decoratorOnClassAccessor5.types | 20 +++++++++ .../decoratorOnClassAccessor6.errors.txt | 44 +++++++++++++++++++ .../reference/decoratorOnClassAccessor6.js | 18 ++++++++ .../decoratorOnClassConstructor1.errors.txt | 11 +++++ .../reference/decoratorOnClassConstructor1.js | 13 ++++++ .../decoratorOnClassConstructorParameter1.js | 24 ++++++++++ ...ecoratorOnClassConstructorParameter1.types | 14 ++++++ ...torOnClassConstructorParameter4.errors.txt | 11 +++++ .../decoratorOnClassConstructorParameter4.js | 24 ++++++++++ .../reference/decoratorOnClassMethod1.js | 26 +++++++++++ .../reference/decoratorOnClassMethod1.types | 19 ++++++++ .../decoratorOnClassMethod10.errors.txt | 17 +++++++ .../reference/decoratorOnClassMethod10.js | 26 +++++++++++ .../reference/decoratorOnClassMethod2.js | 26 +++++++++++ .../reference/decoratorOnClassMethod2.types | 19 ++++++++ .../decoratorOnClassMethod3.errors.txt | 29 ++++++++++++ .../reference/decoratorOnClassMethod3.js | 17 +++++++ .../reference/decoratorOnClassMethod4.js | 27 ++++++++++++ .../reference/decoratorOnClassMethod4.types | 18 ++++++++ .../reference/decoratorOnClassMethod5.js | 27 ++++++++++++ .../reference/decoratorOnClassMethod5.types | 19 ++++++++ .../reference/decoratorOnClassMethod6.js | 27 ++++++++++++ .../reference/decoratorOnClassMethod6.types | 18 ++++++++ .../reference/decoratorOnClassMethod7.js | 27 ++++++++++++ .../reference/decoratorOnClassMethod7.types | 18 ++++++++ .../reference/decoratorOnClassMethod8.js | 26 +++++++++++ .../reference/decoratorOnClassMethod8.types | 15 +++++++ .../decoratorOnClassMethodParameter1.js | 26 +++++++++++ .../decoratorOnClassMethodParameter1.types | 15 +++++++ .../reference/decoratorOnClassProperty1.js | 24 ++++++++++ .../reference/decoratorOnClassProperty1.types | 19 ++++++++ .../reference/decoratorOnClassProperty10.js | 24 ++++++++++ .../decoratorOnClassProperty10.types | 20 +++++++++ .../reference/decoratorOnClassProperty11.js | 24 ++++++++++ .../decoratorOnClassProperty11.types | 19 ++++++++ .../reference/decoratorOnClassProperty12.js | 24 ++++++++++ .../decoratorOnClassProperty12.types | 18 ++++++++ .../decoratorOnClassProperty13.errors.txt | 17 +++++++ .../reference/decoratorOnClassProperty13.js | 24 ++++++++++ .../reference/decoratorOnClassProperty2.js | 24 ++++++++++ .../reference/decoratorOnClassProperty2.types | 19 ++++++++ .../decoratorOnClassProperty3.errors.txt | 26 +++++++++++ .../reference/decoratorOnClassProperty3.js | 15 +++++++ .../reference/decoratorOnClassProperty6.js | 24 ++++++++++ .../reference/decoratorOnClassProperty6.types | 13 ++++++ .../decoratorOnClassProperty7.errors.txt | 17 +++++++ .../reference/decoratorOnClassProperty7.js | 24 ++++++++++ .../reference/decoratorOnEnum.errors.txt | 11 +++++ tests/baselines/reference/decoratorOnEnum.js | 11 +++++ .../reference/decoratorOnEnum2.errors.txt | 20 +++++++++ tests/baselines/reference/decoratorOnEnum2.js | 12 +++++ .../decoratorOnFunctionDeclaration.errors.txt | 11 +++++ .../decoratorOnFunctionDeclaration.js | 10 +++++ .../decoratorOnFunctionExpression.errors.txt | 13 ++++++ .../decoratorOnFunctionExpression.js | 10 +++++ .../decoratorOnImportEquals1.errors.txt | 17 +++++++ .../reference/decoratorOnImportEquals1.js | 17 +++++++ .../decoratorOnImportEquals2.errors.txt | 14 ++++++ .../reference/decoratorOnImportEquals2.js | 14 ++++++ .../reference/decoratorOnInterface.errors.txt | 11 +++++ .../reference/decoratorOnInterface.js | 8 ++++ .../decoratorOnInternalModule.errors.txt | 12 +++++ .../reference/decoratorOnInternalModule.js | 9 ++++ .../reference/decoratorOnTypeAlias.errors.txt | 11 +++++ .../reference/decoratorOnTypeAlias.js | 7 +++ .../reference/decoratorOnVar.errors.txt | 11 +++++ tests/baselines/reference/decoratorOnVar.js | 8 ++++ .../accessor/decoratorOnClassAccessor1.ts | 6 +++ .../accessor/decoratorOnClassAccessor2.ts | 6 +++ .../accessor/decoratorOnClassAccessor3.ts | 6 +++ .../accessor/decoratorOnClassAccessor4.ts | 6 +++ .../accessor/decoratorOnClassAccessor5.ts | 6 +++ .../accessor/decoratorOnClassAccessor6.ts | 6 +++ .../decoratorOnClassConstructor1.ts | 5 +++ .../decoratorOnClassConstructorParameter1.ts | 5 +++ .../decoratorOnClassConstructorParameter4.ts | 5 +++ .../decorators/class/decoratorOnClass1.ts | 5 +++ .../decorators/class/decoratorOnClass2.ts | 6 +++ .../decorators/class/decoratorOnClass3.ts | 7 +++ .../decorators/class/decoratorOnClass4.ts | 5 +++ .../decorators/class/decoratorOnClass5.ts | 5 +++ .../decorators/class/decoratorOnClass8.ts | 5 +++ .../class/method/decoratorOnClassMethod1.ts | 6 +++ .../class/method/decoratorOnClassMethod10.ts | 6 +++ .../class/method/decoratorOnClassMethod2.ts | 6 +++ .../class/method/decoratorOnClassMethod3.ts | 6 +++ .../class/method/decoratorOnClassMethod4.ts | 6 +++ .../class/method/decoratorOnClassMethod5.ts | 6 +++ .../class/method/decoratorOnClassMethod6.ts | 6 +++ .../class/method/decoratorOnClassMethod7.ts | 6 +++ .../class/method/decoratorOnClassMethod8.ts | 6 +++ .../decoratorOnClassMethodParameter1.ts | 5 +++ .../property/decoratorOnClassProperty1.ts | 6 +++ .../property/decoratorOnClassProperty10.ts | 6 +++ .../property/decoratorOnClassProperty11.ts | 6 +++ .../property/decoratorOnClassProperty12.ts | 6 +++ .../property/decoratorOnClassProperty13.ts | 6 +++ .../property/decoratorOnClassProperty2.ts | 6 +++ .../property/decoratorOnClassProperty3.ts | 6 +++ .../property/decoratorOnClassProperty6.ts | 6 +++ .../property/decoratorOnClassProperty7.ts | 6 +++ .../invalid/decoratorOnArrowFunction.ts | 4 ++ .../decorators/invalid/decoratorOnEnum.ts | 5 +++ .../decorators/invalid/decoratorOnEnum2.ts | 5 +++ .../invalid/decoratorOnFunctionDeclaration.ts | 5 +++ .../invalid/decoratorOnFunctionExpression.ts | 4 ++ .../invalid/decoratorOnImportEquals1.ts | 10 +++++ .../invalid/decoratorOnImportEquals2.ts | 9 ++++ .../invalid/decoratorOnInterface.ts | 5 +++ .../invalid/decoratorOnInternalModule.ts | 6 +++ .../invalid/decoratorOnTypeAlias.ts | 4 ++ .../decorators/invalid/decoratorOnVar.ts | 4 ++ 135 files changed, 1978 insertions(+) create mode 100644 tests/baselines/reference/decoratorOnArrowFunction.errors.txt create mode 100644 tests/baselines/reference/decoratorOnArrowFunction.js create mode 100644 tests/baselines/reference/decoratorOnClass1.js create mode 100644 tests/baselines/reference/decoratorOnClass1.types create mode 100644 tests/baselines/reference/decoratorOnClass2.js create mode 100644 tests/baselines/reference/decoratorOnClass2.types create mode 100644 tests/baselines/reference/decoratorOnClass3.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClass3.js create mode 100644 tests/baselines/reference/decoratorOnClass4.js create mode 100644 tests/baselines/reference/decoratorOnClass4.types create mode 100644 tests/baselines/reference/decoratorOnClass5.js create mode 100644 tests/baselines/reference/decoratorOnClass5.types create mode 100644 tests/baselines/reference/decoratorOnClass8.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClass8.js create mode 100644 tests/baselines/reference/decoratorOnClassAccessor1.js create mode 100644 tests/baselines/reference/decoratorOnClassAccessor1.types create mode 100644 tests/baselines/reference/decoratorOnClassAccessor2.js create mode 100644 tests/baselines/reference/decoratorOnClassAccessor2.types create mode 100644 tests/baselines/reference/decoratorOnClassAccessor3.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassAccessor3.js create mode 100644 tests/baselines/reference/decoratorOnClassAccessor4.js create mode 100644 tests/baselines/reference/decoratorOnClassAccessor4.types create mode 100644 tests/baselines/reference/decoratorOnClassAccessor5.js create mode 100644 tests/baselines/reference/decoratorOnClassAccessor5.types create mode 100644 tests/baselines/reference/decoratorOnClassAccessor6.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassAccessor6.js create mode 100644 tests/baselines/reference/decoratorOnClassConstructor1.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassConstructor1.js create mode 100644 tests/baselines/reference/decoratorOnClassConstructorParameter1.js create mode 100644 tests/baselines/reference/decoratorOnClassConstructorParameter1.types create mode 100644 tests/baselines/reference/decoratorOnClassConstructorParameter4.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassConstructorParameter4.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod1.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod1.types create mode 100644 tests/baselines/reference/decoratorOnClassMethod10.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassMethod10.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod2.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod2.types create mode 100644 tests/baselines/reference/decoratorOnClassMethod3.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassMethod3.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod4.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod4.types create mode 100644 tests/baselines/reference/decoratorOnClassMethod5.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod5.types create mode 100644 tests/baselines/reference/decoratorOnClassMethod6.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod6.types create mode 100644 tests/baselines/reference/decoratorOnClassMethod7.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod7.types create mode 100644 tests/baselines/reference/decoratorOnClassMethod8.js create mode 100644 tests/baselines/reference/decoratorOnClassMethod8.types create mode 100644 tests/baselines/reference/decoratorOnClassMethodParameter1.js create mode 100644 tests/baselines/reference/decoratorOnClassMethodParameter1.types create mode 100644 tests/baselines/reference/decoratorOnClassProperty1.js create mode 100644 tests/baselines/reference/decoratorOnClassProperty1.types create mode 100644 tests/baselines/reference/decoratorOnClassProperty10.js create mode 100644 tests/baselines/reference/decoratorOnClassProperty10.types create mode 100644 tests/baselines/reference/decoratorOnClassProperty11.js create mode 100644 tests/baselines/reference/decoratorOnClassProperty11.types create mode 100644 tests/baselines/reference/decoratorOnClassProperty12.js create mode 100644 tests/baselines/reference/decoratorOnClassProperty12.types create mode 100644 tests/baselines/reference/decoratorOnClassProperty13.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassProperty13.js create mode 100644 tests/baselines/reference/decoratorOnClassProperty2.js create mode 100644 tests/baselines/reference/decoratorOnClassProperty2.types create mode 100644 tests/baselines/reference/decoratorOnClassProperty3.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassProperty3.js create mode 100644 tests/baselines/reference/decoratorOnClassProperty6.js create mode 100644 tests/baselines/reference/decoratorOnClassProperty6.types create mode 100644 tests/baselines/reference/decoratorOnClassProperty7.errors.txt create mode 100644 tests/baselines/reference/decoratorOnClassProperty7.js create mode 100644 tests/baselines/reference/decoratorOnEnum.errors.txt create mode 100644 tests/baselines/reference/decoratorOnEnum.js create mode 100644 tests/baselines/reference/decoratorOnEnum2.errors.txt create mode 100644 tests/baselines/reference/decoratorOnEnum2.js create mode 100644 tests/baselines/reference/decoratorOnFunctionDeclaration.errors.txt create mode 100644 tests/baselines/reference/decoratorOnFunctionDeclaration.js create mode 100644 tests/baselines/reference/decoratorOnFunctionExpression.errors.txt create mode 100644 tests/baselines/reference/decoratorOnFunctionExpression.js create mode 100644 tests/baselines/reference/decoratorOnImportEquals1.errors.txt create mode 100644 tests/baselines/reference/decoratorOnImportEquals1.js create mode 100644 tests/baselines/reference/decoratorOnImportEquals2.errors.txt create mode 100644 tests/baselines/reference/decoratorOnImportEquals2.js create mode 100644 tests/baselines/reference/decoratorOnInterface.errors.txt create mode 100644 tests/baselines/reference/decoratorOnInterface.js create mode 100644 tests/baselines/reference/decoratorOnInternalModule.errors.txt create mode 100644 tests/baselines/reference/decoratorOnInternalModule.js create mode 100644 tests/baselines/reference/decoratorOnTypeAlias.errors.txt create mode 100644 tests/baselines/reference/decoratorOnTypeAlias.js create mode 100644 tests/baselines/reference/decoratorOnVar.errors.txt create mode 100644 tests/baselines/reference/decoratorOnVar.js create mode 100644 tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor1.ts create mode 100644 tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor2.ts create mode 100644 tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts create mode 100644 tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor4.ts create mode 100644 tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor5.ts create mode 100644 tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts create mode 100644 tests/cases/conformance/decorators/class/constructor/decoratorOnClassConstructor1.ts create mode 100644 tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter1.ts create mode 100644 tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter4.ts create mode 100644 tests/cases/conformance/decorators/class/decoratorOnClass1.ts create mode 100644 tests/cases/conformance/decorators/class/decoratorOnClass2.ts create mode 100644 tests/cases/conformance/decorators/class/decoratorOnClass3.ts create mode 100644 tests/cases/conformance/decorators/class/decoratorOnClass4.ts create mode 100644 tests/cases/conformance/decorators/class/decoratorOnClass5.ts create mode 100644 tests/cases/conformance/decorators/class/decoratorOnClass8.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod1.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod10.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod2.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod4.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod5.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod6.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod7.ts create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts create mode 100644 tests/cases/conformance/decorators/class/method/parameter/decoratorOnClassMethodParameter1.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty1.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty10.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty11.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty13.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty2.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty6.ts create mode 100644 tests/cases/conformance/decorators/class/property/decoratorOnClassProperty7.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnArrowFunction.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnEnum.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnFunctionDeclaration.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnFunctionExpression.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnImportEquals1.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnImportEquals2.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnInterface.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnInternalModule.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnTypeAlias.ts create mode 100644 tests/cases/conformance/decorators/invalid/decoratorOnVar.ts diff --git a/tests/baselines/reference/decoratorOnArrowFunction.errors.txt b/tests/baselines/reference/decoratorOnArrowFunction.errors.txt new file mode 100644 index 00000000000..7a496a0f55d --- /dev/null +++ b/tests/baselines/reference/decoratorOnArrowFunction.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/decorators/invalid/decoratorOnArrowFunction.ts(3,9): error TS1109: Expression expected. +tests/cases/conformance/decorators/invalid/decoratorOnArrowFunction.ts(3,9): error TS1146: Declaration expected. +tests/cases/conformance/decorators/invalid/decoratorOnArrowFunction.ts(3,17): error TS1128: Declaration or statement expected. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnArrowFunction.ts (3 errors) ==== + declare function dec(target: T): T; + + var F = @dec () => { + ~ +!!! error TS1109: Expression expected. + ~~~~~~~ +!!! error TS1146: Declaration expected. + ~~ +!!! error TS1128: Declaration or statement expected. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnArrowFunction.js b/tests/baselines/reference/decoratorOnArrowFunction.js new file mode 100644 index 00000000000..c45f43a9bbe --- /dev/null +++ b/tests/baselines/reference/decoratorOnArrowFunction.js @@ -0,0 +1,10 @@ +//// [decoratorOnArrowFunction.ts] +declare function dec(target: T): T; + +var F = @dec () => { +} + +//// [decoratorOnArrowFunction.js] +var F = ; +{ +} diff --git a/tests/baselines/reference/decoratorOnClass1.js b/tests/baselines/reference/decoratorOnClass1.js new file mode 100644 index 00000000000..20e570fc010 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass1.js @@ -0,0 +1,24 @@ +//// [decoratorOnClass1.ts] +declare function dec(target: T): T; + +@dec +class C { +} + +//// [decoratorOnClass1.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C = __decorate([dec], C); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClass1.types b/tests/baselines/reference/decoratorOnClass1.types new file mode 100644 index 00000000000..e8b25519149 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass1.types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/decoratorOnClass1.ts === +declare function dec(target: T): T; +>dec : (target: T) => T +>T : T +>target : T +>T : T +>T : T + +@dec +>dec : unknown + +class C { +>C : C +} diff --git a/tests/baselines/reference/decoratorOnClass2.js b/tests/baselines/reference/decoratorOnClass2.js new file mode 100644 index 00000000000..85a298563bc --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass2.js @@ -0,0 +1,25 @@ +//// [decoratorOnClass2.ts] +declare function dec(target: T): T; + +@dec +export class C { +} + +//// [decoratorOnClass2.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C = __decorate([dec], C); + return C; +})(); +exports.C = C; diff --git a/tests/baselines/reference/decoratorOnClass2.types b/tests/baselines/reference/decoratorOnClass2.types new file mode 100644 index 00000000000..e696f699068 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass2.types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/decoratorOnClass2.ts === +declare function dec(target: T): T; +>dec : (target: T) => T +>T : T +>target : T +>T : T +>T : T + +@dec +>dec : unknown + +export class C { +>C : C +} diff --git a/tests/baselines/reference/decoratorOnClass3.errors.txt b/tests/baselines/reference/decoratorOnClass3.errors.txt new file mode 100644 index 00000000000..3453a58fc9d --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass3.errors.txt @@ -0,0 +1,12 @@ +tests/cases/conformance/decorators/class/decoratorOnClass3.ts(3,1): error TS1128: Declaration or statement expected. + + +==== tests/cases/conformance/decorators/class/decoratorOnClass3.ts (1 errors) ==== + declare function dec(target: T): T; + + export + ~~~~~~ +!!! error TS1128: Declaration or statement expected. + @dec + class C { + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClass3.js b/tests/baselines/reference/decoratorOnClass3.js new file mode 100644 index 00000000000..0c43b8d87e6 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass3.js @@ -0,0 +1,25 @@ +//// [decoratorOnClass3.ts] +declare function dec(target: T): T; + +export +@dec +class C { +} + +//// [decoratorOnClass3.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C = __decorate([dec], C); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClass4.js b/tests/baselines/reference/decoratorOnClass4.js new file mode 100644 index 00000000000..f80bc23e7eb --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass4.js @@ -0,0 +1,24 @@ +//// [decoratorOnClass4.ts] +declare function dec(): (target: T) => T; + +@dec() +class C { +} + +//// [decoratorOnClass4.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C = __decorate([dec()], C); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClass4.types b/tests/baselines/reference/decoratorOnClass4.types new file mode 100644 index 00000000000..8875de5d992 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass4.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/decorators/class/decoratorOnClass4.ts === +declare function dec(): (target: T) => T; +>dec : () => (target: T) => T +>T : T +>target : T +>T : T +>T : T + +@dec() +>dec() : (target: T) => T +>dec : () => (target: T) => T + +class C { +>C : C +} diff --git a/tests/baselines/reference/decoratorOnClass5.js b/tests/baselines/reference/decoratorOnClass5.js new file mode 100644 index 00000000000..c85b9b82d7b --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass5.js @@ -0,0 +1,24 @@ +//// [decoratorOnClass5.ts] +declare function dec(): (target: T) => T; + +@dec() +class C { +} + +//// [decoratorOnClass5.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C = __decorate([dec()], C); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClass5.types b/tests/baselines/reference/decoratorOnClass5.types new file mode 100644 index 00000000000..afd12d42d37 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass5.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/decorators/class/decoratorOnClass5.ts === +declare function dec(): (target: T) => T; +>dec : () => (target: T) => T +>T : T +>target : T +>T : T +>T : T + +@dec() +>dec() : (target: T) => T +>dec : () => (target: T) => T + +class C { +>C : C +} diff --git a/tests/baselines/reference/decoratorOnClass8.errors.txt b/tests/baselines/reference/decoratorOnClass8.errors.txt new file mode 100644 index 00000000000..b0f2872ac29 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass8.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/decorators/class/decoratorOnClass8.ts(3,1): error TS2322: Type '(target: Function, paramIndex: number) => void' is not assignable to type 'ClassAnnotation'. + + +==== tests/cases/conformance/decorators/class/decoratorOnClass8.ts (1 errors) ==== + declare function dec(): (target: Function, paramIndex: number) => void; + + @dec() + ~~~~~~ +!!! error TS2322: Type '(target: Function, paramIndex: number) => void' is not assignable to type 'ClassAnnotation'. + class C { + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClass8.js b/tests/baselines/reference/decoratorOnClass8.js new file mode 100644 index 00000000000..083b7fd00c7 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass8.js @@ -0,0 +1,24 @@ +//// [decoratorOnClass8.ts] +declare function dec(): (target: Function, paramIndex: number) => void; + +@dec() +class C { +} + +//// [decoratorOnClass8.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C = __decorate([dec()], C); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor1.js b/tests/baselines/reference/decoratorOnClassAccessor1.js new file mode 100644 index 00000000000..f6a18b7cd0e --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor1.js @@ -0,0 +1,31 @@ +//// [decoratorOnClassAccessor1.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec get accessor() { return 1; } +} + +//// [decoratorOnClassAccessor1.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, "accessor", { + get: function () { + return 1; + }, + enumerable: true, + configurable: true + }); + __decorate([dec], C.prototype, "accessor"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor1.types b/tests/baselines/reference/decoratorOnClassAccessor1.types new file mode 100644 index 00000000000..8bc4f661abc --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor1.types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor1.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec get accessor() { return 1; } +>dec : unknown +>accessor : number +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor2.js b/tests/baselines/reference/decoratorOnClassAccessor2.js new file mode 100644 index 00000000000..f6eafe80b86 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor2.js @@ -0,0 +1,31 @@ +//// [decoratorOnClassAccessor2.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public get accessor() { return 1; } +} + +//// [decoratorOnClassAccessor2.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, "accessor", { + get: function () { + return 1; + }, + enumerable: true, + configurable: true + }); + __decorate([dec], C.prototype, "accessor"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor2.types b/tests/baselines/reference/decoratorOnClassAccessor2.types new file mode 100644 index 00000000000..1278486593f --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor2.types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor2.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec public get accessor() { return 1; } +>dec : unknown +>accessor : number +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor3.errors.txt b/tests/baselines/reference/decoratorOnClassAccessor3.errors.txt new file mode 100644 index 00000000000..e46e58ebbda --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor3.errors.txt @@ -0,0 +1,35 @@ +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(4,5): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(4,5): error TS2304: Cannot find name 'public'. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(4,12): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(4,12): error TS1146: Declaration expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(4,17): error TS2304: Cannot find name 'get'. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(4,21): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(4,21): error TS2304: Cannot find name 'accessor'. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(4,32): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts(5,1): error TS1128: Declaration or statement expected. + + +==== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts (9 errors) ==== + declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + + class C { + public @dec get accessor() { return 1; } + ~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~ +!!! error TS2304: Cannot find name 'public'. + ~ +!!! error TS1005: ';' expected. + ~~~~ +!!! error TS1146: Declaration expected. + ~~~ +!!! error TS2304: Cannot find name 'get'. + ~~~~~~~~ +!!! error TS1005: ';' expected. + ~~~~~~~~ +!!! error TS2304: Cannot find name 'accessor'. + ~ +!!! error TS1005: ';' expected. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassAccessor3.js b/tests/baselines/reference/decoratorOnClassAccessor3.js new file mode 100644 index 00000000000..d37656cb0e7 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor3.js @@ -0,0 +1,19 @@ +//// [decoratorOnClassAccessor3.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + public @dec get accessor() { return 1; } +} + +//// [decoratorOnClassAccessor3.js] +var C = (function () { + function C() { + } + return C; +})(); +public; +get; +accessor(); +{ + return 1; +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor4.js b/tests/baselines/reference/decoratorOnClassAccessor4.js new file mode 100644 index 00000000000..d9f4044be92 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor4.js @@ -0,0 +1,30 @@ +//// [decoratorOnClassAccessor4.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec set accessor(value: number) { } +} + +//// [decoratorOnClassAccessor4.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, "accessor", { + set: function (value) { + }, + enumerable: true, + configurable: true + }); + __decorate([dec], C.prototype, "accessor"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor4.types b/tests/baselines/reference/decoratorOnClassAccessor4.types new file mode 100644 index 00000000000..127719117e2 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor4.types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor4.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec set accessor(value: number) { } +>dec : unknown +>accessor : number +>value : number +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor5.js b/tests/baselines/reference/decoratorOnClassAccessor5.js new file mode 100644 index 00000000000..1b4d8acc3c2 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor5.js @@ -0,0 +1,30 @@ +//// [decoratorOnClassAccessor5.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public set accessor(value: number) { } +} + +//// [decoratorOnClassAccessor5.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, "accessor", { + set: function (value) { + }, + enumerable: true, + configurable: true + }); + __decorate([dec], C.prototype, "accessor"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor5.types b/tests/baselines/reference/decoratorOnClassAccessor5.types new file mode 100644 index 00000000000..63bb9159dd0 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor5.types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor5.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec public set accessor(value: number) { } +>dec : unknown +>accessor : number +>value : number +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor6.errors.txt b/tests/baselines/reference/decoratorOnClassAccessor6.errors.txt new file mode 100644 index 00000000000..277722a22d1 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor6.errors.txt @@ -0,0 +1,44 @@ +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,5): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,5): error TS2304: Cannot find name 'public'. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,12): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,12): error TS1146: Declaration expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,17): error TS2304: Cannot find name 'set'. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,21): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,21): error TS2304: Cannot find name 'accessor'. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,30): error TS2304: Cannot find name 'value'. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,35): error TS1005: ',' expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,37): error TS2304: Cannot find name 'number'. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(4,45): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts(5,1): error TS1128: Declaration or statement expected. + + +==== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts (12 errors) ==== + declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + + class C { + public @dec set accessor(value: number) { } + ~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~ +!!! error TS2304: Cannot find name 'public'. + ~ +!!! error TS1005: ';' expected. + ~~~~ +!!! error TS1146: Declaration expected. + ~~~ +!!! error TS2304: Cannot find name 'set'. + ~~~~~~~~ +!!! error TS1005: ';' expected. + ~~~~~~~~ +!!! error TS2304: Cannot find name 'accessor'. + ~~~~~ +!!! error TS2304: Cannot find name 'value'. + ~ +!!! error TS1005: ',' expected. + ~~~~~~ +!!! error TS2304: Cannot find name 'number'. + ~ +!!! error TS1005: ';' expected. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassAccessor6.js b/tests/baselines/reference/decoratorOnClassAccessor6.js new file mode 100644 index 00000000000..7335374b3c9 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor6.js @@ -0,0 +1,18 @@ +//// [decoratorOnClassAccessor6.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + public @dec set accessor(value: number) { } +} + +//// [decoratorOnClassAccessor6.js] +var C = (function () { + function C() { + } + return C; +})(); +public; +set; +accessor(value, number); +{ +} diff --git a/tests/baselines/reference/decoratorOnClassConstructor1.errors.txt b/tests/baselines/reference/decoratorOnClassConstructor1.errors.txt new file mode 100644 index 00000000000..63da4b603ae --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassConstructor1.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/decorators/class/constructor/decoratorOnClassConstructor1.ts(4,5): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/class/constructor/decoratorOnClassConstructor1.ts (1 errors) ==== + declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + + class C { + @dec constructor() {} + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1203: Decorators are not valid on this declaration type. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassConstructor1.js b/tests/baselines/reference/decoratorOnClassConstructor1.js new file mode 100644 index 00000000000..cfe9afaa3a1 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassConstructor1.js @@ -0,0 +1,13 @@ +//// [decoratorOnClassConstructor1.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec constructor() {} +} + +//// [decoratorOnClassConstructor1.js] +var C = (function () { + function C() { + } + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter1.js b/tests/baselines/reference/decoratorOnClassConstructorParameter1.js new file mode 100644 index 00000000000..c5cf24bd1c2 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter1.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassConstructorParameter1.ts] +declare function dec(target: Function, parameterIndex: number): void; + +class C { + constructor(@dec p: number) {} +} + +//// [decoratorOnClassConstructorParameter1.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C(p) { + } + __decorate([dec], C, 0); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter1.types b/tests/baselines/reference/decoratorOnClassConstructorParameter1.types new file mode 100644 index 00000000000..aae8e481acc --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter1.types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter1.ts === +declare function dec(target: Function, parameterIndex: number): void; +>dec : (target: Function, parameterIndex: number) => void +>target : Function +>Function : Function +>parameterIndex : number + +class C { +>C : C + + constructor(@dec p: number) {} +>dec : unknown +>p : number +} diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter4.errors.txt b/tests/baselines/reference/decoratorOnClassConstructorParameter4.errors.txt new file mode 100644 index 00000000000..4c992365580 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter4.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter4.ts(4,24): error TS1005: ',' expected. + + +==== tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter4.ts (1 errors) ==== + declare function dec(target: Function, parameterIndex: number): void; + + class C { + constructor(public @dec p: number) {} + ~ +!!! error TS1005: ',' expected. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter4.js b/tests/baselines/reference/decoratorOnClassConstructorParameter4.js new file mode 100644 index 00000000000..9a42ced47ed --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter4.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassConstructorParameter4.ts] +declare function dec(target: Function, parameterIndex: number): void; + +class C { + constructor(public @dec p: number) {} +} + +//// [decoratorOnClassConstructorParameter4.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C(public, p) { + } + __decorate([dec], C, 1); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod1.js b/tests/baselines/reference/decoratorOnClassMethod1.js new file mode 100644 index 00000000000..26cb10619f0 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod1.js @@ -0,0 +1,26 @@ +//// [decoratorOnClassMethod1.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec method() {} +} + +//// [decoratorOnClassMethod1.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C.prototype.method = function () { + }; + __decorate([dec], C.prototype, "method"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod1.types b/tests/baselines/reference/decoratorOnClassMethod1.types new file mode 100644 index 00000000000..0ca111a9b4d --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod1.types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod1.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec method() {} +>dec : unknown +>method : () => void +} diff --git a/tests/baselines/reference/decoratorOnClassMethod10.errors.txt b/tests/baselines/reference/decoratorOnClassMethod10.errors.txt new file mode 100644 index 00000000000..c9aada5d489 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod10.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod10.ts(4,5): error TS2322: Type '(target: Function, paramIndex: number) => void' is not assignable to type 'PropertyAnnotation'. + Types of parameters 'paramIndex' and 'propertyKey' are incompatible. + Type 'number' is not assignable to type 'string | symbol'. + Type 'number' is not assignable to type 'symbol'. + + +==== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod10.ts (1 errors) ==== + declare function dec(target: Function, paramIndex: number): void; + + class C { + @dec method() {} + ~~~~ +!!! error TS2322: Type '(target: Function, paramIndex: number) => void' is not assignable to type 'PropertyAnnotation'. +!!! error TS2322: Types of parameters 'paramIndex' and 'propertyKey' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string | symbol'. +!!! error TS2322: Type 'number' is not assignable to type 'symbol'. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassMethod10.js b/tests/baselines/reference/decoratorOnClassMethod10.js new file mode 100644 index 00000000000..6815db95d1e --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod10.js @@ -0,0 +1,26 @@ +//// [decoratorOnClassMethod10.ts] +declare function dec(target: Function, paramIndex: number): void; + +class C { + @dec method() {} +} + +//// [decoratorOnClassMethod10.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C.prototype.method = function () { + }; + __decorate([dec], C.prototype, "method"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod2.js b/tests/baselines/reference/decoratorOnClassMethod2.js new file mode 100644 index 00000000000..ad350ccdb25 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod2.js @@ -0,0 +1,26 @@ +//// [decoratorOnClassMethod2.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public method() {} +} + +//// [decoratorOnClassMethod2.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C.prototype.method = function () { + }; + __decorate([dec], C.prototype, "method"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod2.types b/tests/baselines/reference/decoratorOnClassMethod2.types new file mode 100644 index 00000000000..eb46c00b8c5 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod2.types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod2.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec public method() {} +>dec : unknown +>method : () => void +} diff --git a/tests/baselines/reference/decoratorOnClassMethod3.errors.txt b/tests/baselines/reference/decoratorOnClassMethod3.errors.txt new file mode 100644 index 00000000000..f125b96f9e8 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod3.errors.txt @@ -0,0 +1,29 @@ +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts(4,5): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts(4,5): error TS2304: Cannot find name 'public'. +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts(4,12): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts(4,12): error TS1146: Declaration expected. +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts(4,17): error TS2304: Cannot find name 'method'. +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts(4,26): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts(5,1): error TS1128: Declaration or statement expected. + + +==== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts (7 errors) ==== + declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + + class C { + public @dec method() {} + ~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~ +!!! error TS2304: Cannot find name 'public'. + ~ +!!! error TS1005: ';' expected. + ~~~~ +!!! error TS1146: Declaration expected. + ~~~~~~ +!!! error TS2304: Cannot find name 'method'. + ~ +!!! error TS1005: ';' expected. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassMethod3.js b/tests/baselines/reference/decoratorOnClassMethod3.js new file mode 100644 index 00000000000..f2a385a30e5 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod3.js @@ -0,0 +1,17 @@ +//// [decoratorOnClassMethod3.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + public @dec method() {} +} + +//// [decoratorOnClassMethod3.js] +var C = (function () { + function C() { + } + return C; +})(); +public; +method(); +{ +} diff --git a/tests/baselines/reference/decoratorOnClassMethod4.js b/tests/baselines/reference/decoratorOnClassMethod4.js new file mode 100644 index 00000000000..f886aac28eb --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod4.js @@ -0,0 +1,27 @@ +//// [decoratorOnClassMethod4.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec ["method"]() {} +} + +//// [decoratorOnClassMethod4.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function() { + class C { + [_a = "method"]() { + } + } + __decorate([dec], C.prototype, _a); + return C; + var _a; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod4.types b/tests/baselines/reference/decoratorOnClassMethod4.types new file mode 100644 index 00000000000..5d89a5ac7dd --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod4.types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod4.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec ["method"]() {} +>dec : unknown +} diff --git a/tests/baselines/reference/decoratorOnClassMethod5.js b/tests/baselines/reference/decoratorOnClassMethod5.js new file mode 100644 index 00000000000..44a37120d5c --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod5.js @@ -0,0 +1,27 @@ +//// [decoratorOnClassMethod5.ts] +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; + +class C { + @dec() ["method"]() {} +} + +//// [decoratorOnClassMethod5.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function() { + class C { + [_a = "method"]() { + } + } + __decorate([dec()], C.prototype, _a); + return C; + var _a; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod5.types b/tests/baselines/reference/decoratorOnClassMethod5.types new file mode 100644 index 00000000000..ed57518087b --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod5.types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod5.ts === +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec() ["method"]() {} +>dec() : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +} diff --git a/tests/baselines/reference/decoratorOnClassMethod6.js b/tests/baselines/reference/decoratorOnClassMethod6.js new file mode 100644 index 00000000000..52c57519015 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod6.js @@ -0,0 +1,27 @@ +//// [decoratorOnClassMethod6.ts] +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; + +class C { + @dec ["method"]() {} +} + +//// [decoratorOnClassMethod6.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function() { + class C { + [_a = "method"]() { + } + } + __decorate([dec], C.prototype, _a); + return C; + var _a; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod6.types b/tests/baselines/reference/decoratorOnClassMethod6.types new file mode 100644 index 00000000000..ffaff625bb6 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod6.types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod6.ts === +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec ["method"]() {} +>dec : unknown +} diff --git a/tests/baselines/reference/decoratorOnClassMethod7.js b/tests/baselines/reference/decoratorOnClassMethod7.js new file mode 100644 index 00000000000..f64859e40c5 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod7.js @@ -0,0 +1,27 @@ +//// [decoratorOnClassMethod7.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public ["method"]() {} +} + +//// [decoratorOnClassMethod7.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function() { + class C { + [_a = "method"]() { + } + } + __decorate([dec], C.prototype, _a); + return C; + var _a; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod7.types b/tests/baselines/reference/decoratorOnClassMethod7.types new file mode 100644 index 00000000000..0fd1c208674 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod7.types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod7.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec public ["method"]() {} +>dec : unknown +} diff --git a/tests/baselines/reference/decoratorOnClassMethod8.js b/tests/baselines/reference/decoratorOnClassMethod8.js new file mode 100644 index 00000000000..c6ada2a819e --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod8.js @@ -0,0 +1,26 @@ +//// [decoratorOnClassMethod8.ts] +declare function dec(target: T): T; + +class C { + @dec method() {} +} + +//// [decoratorOnClassMethod8.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C.prototype.method = function () { + }; + __decorate([dec], C.prototype, "method"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethod8.types b/tests/baselines/reference/decoratorOnClassMethod8.types new file mode 100644 index 00000000000..de5fce22ba6 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod8.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts === +declare function dec(target: T): T; +>dec : (target: T) => T +>T : T +>target : T +>T : T +>T : T + +class C { +>C : C + + @dec method() {} +>dec : unknown +>method : () => void +} diff --git a/tests/baselines/reference/decoratorOnClassMethodParameter1.js b/tests/baselines/reference/decoratorOnClassMethodParameter1.js new file mode 100644 index 00000000000..da079bf3978 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethodParameter1.js @@ -0,0 +1,26 @@ +//// [decoratorOnClassMethodParameter1.ts] +declare function dec(target: Function, parameterIndex: number): void; + +class C { + method(@dec p: number) {} +} + +//// [decoratorOnClassMethodParameter1.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + C.prototype.method = function (p) { + }; + __decorate([dec], C.prototype.method, 0); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassMethodParameter1.types b/tests/baselines/reference/decoratorOnClassMethodParameter1.types new file mode 100644 index 00000000000..afc7ee8afd6 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethodParameter1.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/decorators/class/method/parameter/decoratorOnClassMethodParameter1.ts === +declare function dec(target: Function, parameterIndex: number): void; +>dec : (target: Function, parameterIndex: number) => void +>target : Function +>Function : Function +>parameterIndex : number + +class C { +>C : C + + method(@dec p: number) {} +>method : (p: number) => void +>dec : unknown +>p : number +} diff --git a/tests/baselines/reference/decoratorOnClassProperty1.js b/tests/baselines/reference/decoratorOnClassProperty1.js new file mode 100644 index 00000000000..319bee8d74a --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty1.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassProperty1.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec prop; +} + +//// [decoratorOnClassProperty1.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + __decorate([dec], C.prototype, "prop"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassProperty1.types b/tests/baselines/reference/decoratorOnClassProperty1.types new file mode 100644 index 00000000000..e25a43d3677 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty1.types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty1.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec prop; +>dec : unknown +>prop : any +} diff --git a/tests/baselines/reference/decoratorOnClassProperty10.js b/tests/baselines/reference/decoratorOnClassProperty10.js new file mode 100644 index 00000000000..ea26810fb99 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty10.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassProperty10.ts] +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; + +class C { + @dec() prop; +} + +//// [decoratorOnClassProperty10.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + __decorate([dec()], C.prototype, "prop"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassProperty10.types b/tests/baselines/reference/decoratorOnClassProperty10.types new file mode 100644 index 00000000000..4762052a050 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty10.types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty10.ts === +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec() prop; +>dec() : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>prop : any +} diff --git a/tests/baselines/reference/decoratorOnClassProperty11.js b/tests/baselines/reference/decoratorOnClassProperty11.js new file mode 100644 index 00000000000..0fc1ef85c2f --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty11.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassProperty11.ts] +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; + +class C { + @dec prop; +} + +//// [decoratorOnClassProperty11.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + __decorate([dec], C.prototype, "prop"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassProperty11.types b/tests/baselines/reference/decoratorOnClassProperty11.types new file mode 100644 index 00000000000..eeced36c069 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty11.types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty11.ts === +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec prop; +>dec : unknown +>prop : any +} diff --git a/tests/baselines/reference/decoratorOnClassProperty12.js b/tests/baselines/reference/decoratorOnClassProperty12.js new file mode 100644 index 00000000000..769849c3d6b --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty12.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassProperty12.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec prop; +} + +//// [decoratorOnClassProperty12.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + __decorate([dec], C.prototype, "prop"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassProperty12.types b/tests/baselines/reference/decoratorOnClassProperty12.types new file mode 100644 index 00000000000..73d14a61539 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty12.types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor + +class C { +>C : C + + @dec prop; +>dec : unknown +>prop : any +} diff --git a/tests/baselines/reference/decoratorOnClassProperty13.errors.txt b/tests/baselines/reference/decoratorOnClassProperty13.errors.txt new file mode 100644 index 00000000000..f405e6f0bc2 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty13.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/decorators/class/property/decoratorOnClassProperty13.ts(4,5): error TS1205: Decorators may not change the type of a member. + Type 'TypedPropertyDescriptor' is not assignable to type 'void | TypedPropertyDescriptor'. + Type 'TypedPropertyDescriptor' is not assignable to type 'TypedPropertyDescriptor'. + Type 'number' is not assignable to type 'string'. + + +==== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty13.ts (1 errors) ==== + declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + + class C { + @dec prop: string; + ~~~~ +!!! error TS1205: Decorators may not change the type of a member. +!!! error TS1205: Type 'TypedPropertyDescriptor' is not assignable to type 'void | TypedPropertyDescriptor'. +!!! error TS1205: Type 'TypedPropertyDescriptor' is not assignable to type 'TypedPropertyDescriptor'. +!!! error TS1205: Type 'number' is not assignable to type 'string'. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassProperty13.js b/tests/baselines/reference/decoratorOnClassProperty13.js new file mode 100644 index 00000000000..8d5b93dc85d --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty13.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassProperty13.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec prop: string; +} + +//// [decoratorOnClassProperty13.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + __decorate([dec], C.prototype, "prop"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassProperty2.js b/tests/baselines/reference/decoratorOnClassProperty2.js new file mode 100644 index 00000000000..a609745fe05 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty2.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassProperty2.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public prop; +} + +//// [decoratorOnClassProperty2.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + __decorate([dec], C.prototype, "prop"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassProperty2.types b/tests/baselines/reference/decoratorOnClassProperty2.types new file mode 100644 index 00000000000..10700a362f1 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty2.types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty2.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T + +class C { +>C : C + + @dec public prop; +>dec : unknown +>prop : any +} diff --git a/tests/baselines/reference/decoratorOnClassProperty3.errors.txt b/tests/baselines/reference/decoratorOnClassProperty3.errors.txt new file mode 100644 index 00000000000..02c9c2bad61 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty3.errors.txt @@ -0,0 +1,26 @@ +tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts(4,5): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts(4,5): error TS2304: Cannot find name 'public'. +tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts(4,12): error TS1005: ';' expected. +tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts(4,12): error TS1146: Declaration expected. +tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts(4,17): error TS2304: Cannot find name 'prop'. +tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts(5,1): error TS1128: Declaration or statement expected. + + +==== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts (6 errors) ==== + declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + + class C { + public @dec prop; + ~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~ +!!! error TS2304: Cannot find name 'public'. + ~ +!!! error TS1005: ';' expected. + ~~~~ +!!! error TS1146: Declaration expected. + ~~~~ +!!! error TS2304: Cannot find name 'prop'. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassProperty3.js b/tests/baselines/reference/decoratorOnClassProperty3.js new file mode 100644 index 00000000000..0e2e8110f0c --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty3.js @@ -0,0 +1,15 @@ +//// [decoratorOnClassProperty3.ts] +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + public @dec prop; +} + +//// [decoratorOnClassProperty3.js] +var C = (function () { + function C() { + } + return C; +})(); +public; +prop; diff --git a/tests/baselines/reference/decoratorOnClassProperty6.js b/tests/baselines/reference/decoratorOnClassProperty6.js new file mode 100644 index 00000000000..84640b3b470 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty6.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassProperty6.ts] +declare function dec(target: Function): void; + +class C { + @dec prop; +} + +//// [decoratorOnClassProperty6.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + __decorate([dec], C.prototype, "prop"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnClassProperty6.types b/tests/baselines/reference/decoratorOnClassProperty6.types new file mode 100644 index 00000000000..77367c0893b --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty6.types @@ -0,0 +1,13 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty6.ts === +declare function dec(target: Function): void; +>dec : (target: Function) => void +>target : Function +>Function : Function + +class C { +>C : C + + @dec prop; +>dec : unknown +>prop : any +} diff --git a/tests/baselines/reference/decoratorOnClassProperty7.errors.txt b/tests/baselines/reference/decoratorOnClassProperty7.errors.txt new file mode 100644 index 00000000000..1780959ba68 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty7.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/decorators/class/property/decoratorOnClassProperty7.ts(4,5): error TS2322: Type '(target: Function, paramIndex: number) => void' is not assignable to type 'PropertyAnnotation'. + Types of parameters 'paramIndex' and 'propertyKey' are incompatible. + Type 'number' is not assignable to type 'string | symbol'. + Type 'number' is not assignable to type 'symbol'. + + +==== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty7.ts (1 errors) ==== + declare function dec(target: Function, paramIndex: number): void; + + class C { + @dec prop; + ~~~~ +!!! error TS2322: Type '(target: Function, paramIndex: number) => void' is not assignable to type 'PropertyAnnotation'. +!!! error TS2322: Types of parameters 'paramIndex' and 'propertyKey' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string | symbol'. +!!! error TS2322: Type 'number' is not assignable to type 'symbol'. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassProperty7.js b/tests/baselines/reference/decoratorOnClassProperty7.js new file mode 100644 index 00000000000..97ab0110c08 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty7.js @@ -0,0 +1,24 @@ +//// [decoratorOnClassProperty7.ts] +declare function dec(target: Function, paramIndex: number): void; + +class C { + @dec prop; +} + +//// [decoratorOnClassProperty7.js] +var __decorate = this.__decorate || function (decorators, target, key) { + var kind = key == null ? 0 : typeof key == "number" ? 1 : 2, result = target; + if (kind == 2) result = Object.getOwnPropertyDescriptor(target, typeof key == "symbol" ? key : key = String(key)); + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + result = (kind == 0 ? decorator(result) : kind == 1 ? decorator(target, key) : decorator(target, key, result)) || result; + } + if (kind == 2 && result) Object.defineProperty(target, key, result); + if (kind == 0) return result; +}; +var C = (function () { + function C() { + } + __decorate([dec], C.prototype, "prop"); + return C; +})(); diff --git a/tests/baselines/reference/decoratorOnEnum.errors.txt b/tests/baselines/reference/decoratorOnEnum.errors.txt new file mode 100644 index 00000000000..32a0080c56b --- /dev/null +++ b/tests/baselines/reference/decoratorOnEnum.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/decorators/invalid/decoratorOnEnum.ts(4,6): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnEnum.ts (1 errors) ==== + declare function dec(target: T): T; + + @dec + enum E { + ~ +!!! error TS1203: Decorators are not valid on this declaration type. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnEnum.js b/tests/baselines/reference/decoratorOnEnum.js new file mode 100644 index 00000000000..6a7fe81480b --- /dev/null +++ b/tests/baselines/reference/decoratorOnEnum.js @@ -0,0 +1,11 @@ +//// [decoratorOnEnum.ts] +declare function dec(target: T): T; + +@dec +enum E { +} + +//// [decoratorOnEnum.js] +var E; +(function (E) { +})(E || (E = {})); diff --git a/tests/baselines/reference/decoratorOnEnum2.errors.txt b/tests/baselines/reference/decoratorOnEnum2.errors.txt new file mode 100644 index 00000000000..69e778d0114 --- /dev/null +++ b/tests/baselines/reference/decoratorOnEnum2.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts(4,5): error TS1132: Enum member expected. +tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts(4,5): error TS1146: Declaration expected. +tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts(4,10): error TS2304: Cannot find name 'A'. +tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts(5,1): error TS1128: Declaration or statement expected. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts (4 errors) ==== + declare function dec(target: T): T; + + enum E { + @dec A + ~ +!!! error TS1132: Enum member expected. + ~~~~ +!!! error TS1146: Declaration expected. + ~ +!!! error TS2304: Cannot find name 'A'. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnEnum2.js b/tests/baselines/reference/decoratorOnEnum2.js new file mode 100644 index 00000000000..a99e908bddb --- /dev/null +++ b/tests/baselines/reference/decoratorOnEnum2.js @@ -0,0 +1,12 @@ +//// [decoratorOnEnum2.ts] +declare function dec(target: T): T; + +enum E { + @dec A +} + +//// [decoratorOnEnum2.js] +var E; +(function (E) { +})(E || (E = {})); +A; diff --git a/tests/baselines/reference/decoratorOnFunctionDeclaration.errors.txt b/tests/baselines/reference/decoratorOnFunctionDeclaration.errors.txt new file mode 100644 index 00000000000..c5f3b32e24d --- /dev/null +++ b/tests/baselines/reference/decoratorOnFunctionDeclaration.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/decorators/invalid/decoratorOnFunctionDeclaration.ts(4,10): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnFunctionDeclaration.ts (1 errors) ==== + declare function dec(target: T): T; + + @dec + function F() { + ~ +!!! error TS1203: Decorators are not valid on this declaration type. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnFunctionDeclaration.js b/tests/baselines/reference/decoratorOnFunctionDeclaration.js new file mode 100644 index 00000000000..59d36731548 --- /dev/null +++ b/tests/baselines/reference/decoratorOnFunctionDeclaration.js @@ -0,0 +1,10 @@ +//// [decoratorOnFunctionDeclaration.ts] +declare function dec(target: T): T; + +@dec +function F() { +} + +//// [decoratorOnFunctionDeclaration.js] +function F() { +} diff --git a/tests/baselines/reference/decoratorOnFunctionExpression.errors.txt b/tests/baselines/reference/decoratorOnFunctionExpression.errors.txt new file mode 100644 index 00000000000..95103a7c687 --- /dev/null +++ b/tests/baselines/reference/decoratorOnFunctionExpression.errors.txt @@ -0,0 +1,13 @@ +tests/cases/conformance/decorators/invalid/decoratorOnFunctionExpression.ts(3,9): error TS1109: Expression expected. +tests/cases/conformance/decorators/invalid/decoratorOnFunctionExpression.ts(3,23): error TS1003: Identifier expected. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnFunctionExpression.ts (2 errors) ==== + declare function dec(target: T): T; + + var F = @dec function () { + ~ +!!! error TS1109: Expression expected. + ~ +!!! error TS1003: Identifier expected. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnFunctionExpression.js b/tests/baselines/reference/decoratorOnFunctionExpression.js new file mode 100644 index 00000000000..9a15aa699a1 --- /dev/null +++ b/tests/baselines/reference/decoratorOnFunctionExpression.js @@ -0,0 +1,10 @@ +//// [decoratorOnFunctionExpression.ts] +declare function dec(target: T): T; + +var F = @dec function () { +} + +//// [decoratorOnFunctionExpression.js] +var F = ; +function () { +} diff --git a/tests/baselines/reference/decoratorOnImportEquals1.errors.txt b/tests/baselines/reference/decoratorOnImportEquals1.errors.txt new file mode 100644 index 00000000000..8bd8efca048 --- /dev/null +++ b/tests/baselines/reference/decoratorOnImportEquals1.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/decorators/invalid/decoratorOnImportEquals1.ts(8,5): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnImportEquals1.ts (1 errors) ==== + declare function dec(target: T): T; + + module M1 { + export var X: number; + } + + module M2 { + @dec + ~~~~ + import X = M1.X; + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS1203: Decorators are not valid on this declaration type. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnImportEquals1.js b/tests/baselines/reference/decoratorOnImportEquals1.js new file mode 100644 index 00000000000..08ad26af2b2 --- /dev/null +++ b/tests/baselines/reference/decoratorOnImportEquals1.js @@ -0,0 +1,17 @@ +//// [decoratorOnImportEquals1.ts] +declare function dec(target: T): T; + +module M1 { + export var X: number; +} + +module M2 { + @dec + import X = M1.X; +} + +//// [decoratorOnImportEquals1.js] +var M1; +(function (M1) { + M1.X; +})(M1 || (M1 = {})); diff --git a/tests/baselines/reference/decoratorOnImportEquals2.errors.txt b/tests/baselines/reference/decoratorOnImportEquals2.errors.txt new file mode 100644 index 00000000000..9e598cbe539 --- /dev/null +++ b/tests/baselines/reference/decoratorOnImportEquals2.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/decorators/invalid/decoratorOnImportEquals2_1.ts(1,1): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnImportEquals2_1.ts (1 errors) ==== + @dec + ~~~~ + import lib = require('./decoratorOnImportEquals2_0'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1203: Decorators are not valid on this declaration type. + + declare function dec(target: T): T; +==== tests/cases/conformance/decorators/invalid/decoratorOnImportEquals2_0.ts (0 errors) ==== + export var X; + \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnImportEquals2.js b/tests/baselines/reference/decoratorOnImportEquals2.js new file mode 100644 index 00000000000..c05d1759026 --- /dev/null +++ b/tests/baselines/reference/decoratorOnImportEquals2.js @@ -0,0 +1,14 @@ +//// [tests/cases/conformance/decorators/invalid/decoratorOnImportEquals2.ts] //// + +//// [decoratorOnImportEquals2_0.ts] +export var X; + +//// [decoratorOnImportEquals2_1.ts] +@dec +import lib = require('./decoratorOnImportEquals2_0'); + +declare function dec(target: T): T; + +//// [decoratorOnImportEquals2_0.js] +exports.X; +//// [decoratorOnImportEquals2_1.js] diff --git a/tests/baselines/reference/decoratorOnInterface.errors.txt b/tests/baselines/reference/decoratorOnInterface.errors.txt new file mode 100644 index 00000000000..a4258cf0bdb --- /dev/null +++ b/tests/baselines/reference/decoratorOnInterface.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/decorators/invalid/decoratorOnInterface.ts(4,11): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnInterface.ts (1 errors) ==== + declare function dec(target: T): T; + + @dec + interface I { + ~ +!!! error TS1203: Decorators are not valid on this declaration type. + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnInterface.js b/tests/baselines/reference/decoratorOnInterface.js new file mode 100644 index 00000000000..b775b4348e9 --- /dev/null +++ b/tests/baselines/reference/decoratorOnInterface.js @@ -0,0 +1,8 @@ +//// [decoratorOnInterface.ts] +declare function dec(target: T): T; + +@dec +interface I { +} + +//// [decoratorOnInterface.js] diff --git a/tests/baselines/reference/decoratorOnInternalModule.errors.txt b/tests/baselines/reference/decoratorOnInternalModule.errors.txt new file mode 100644 index 00000000000..40b4eb7b69d --- /dev/null +++ b/tests/baselines/reference/decoratorOnInternalModule.errors.txt @@ -0,0 +1,12 @@ +tests/cases/conformance/decorators/invalid/decoratorOnInternalModule.ts(4,8): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnInternalModule.ts (1 errors) ==== + declare function dec(target: T): T; + + @dec + module M { + ~ +!!! error TS1203: Decorators are not valid on this declaration type. + + } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnInternalModule.js b/tests/baselines/reference/decoratorOnInternalModule.js new file mode 100644 index 00000000000..1274d9983e5 --- /dev/null +++ b/tests/baselines/reference/decoratorOnInternalModule.js @@ -0,0 +1,9 @@ +//// [decoratorOnInternalModule.ts] +declare function dec(target: T): T; + +@dec +module M { + +} + +//// [decoratorOnInternalModule.js] diff --git a/tests/baselines/reference/decoratorOnTypeAlias.errors.txt b/tests/baselines/reference/decoratorOnTypeAlias.errors.txt new file mode 100644 index 00000000000..a0f6ba82223 --- /dev/null +++ b/tests/baselines/reference/decoratorOnTypeAlias.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/decorators/invalid/decoratorOnTypeAlias.ts(3,1): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnTypeAlias.ts (1 errors) ==== + declare function dec(target: T): T; + + @dec + ~~~~ + type T = number; + ~~~~~~~~~~~~~~~~ +!!! error TS1203: Decorators are not valid on this declaration type. \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnTypeAlias.js b/tests/baselines/reference/decoratorOnTypeAlias.js new file mode 100644 index 00000000000..c43928fe80b --- /dev/null +++ b/tests/baselines/reference/decoratorOnTypeAlias.js @@ -0,0 +1,7 @@ +//// [decoratorOnTypeAlias.ts] +declare function dec(target: T): T; + +@dec +type T = number; + +//// [decoratorOnTypeAlias.js] diff --git a/tests/baselines/reference/decoratorOnVar.errors.txt b/tests/baselines/reference/decoratorOnVar.errors.txt new file mode 100644 index 00000000000..0b7660cc7b4 --- /dev/null +++ b/tests/baselines/reference/decoratorOnVar.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/decorators/invalid/decoratorOnVar.ts(3,1): error TS1203: Decorators are not valid on this declaration type. + + +==== tests/cases/conformance/decorators/invalid/decoratorOnVar.ts (1 errors) ==== + declare function dec(target: T): T; + + @dec + ~~~~ + var x: number; + ~~~~~~~~~~~~~~ +!!! error TS1203: Decorators are not valid on this declaration type. \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnVar.js b/tests/baselines/reference/decoratorOnVar.js new file mode 100644 index 00000000000..92cd7f432bc --- /dev/null +++ b/tests/baselines/reference/decoratorOnVar.js @@ -0,0 +1,8 @@ +//// [decoratorOnVar.ts] +declare function dec(target: T): T; + +@dec +var x: number; + +//// [decoratorOnVar.js] +var x; diff --git a/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor1.ts b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor1.ts new file mode 100644 index 00000000000..7e80e9e637d --- /dev/null +++ b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor1.ts @@ -0,0 +1,6 @@ +// @target:es5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec get accessor() { return 1; } +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor2.ts b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor2.ts new file mode 100644 index 00000000000..bbe58e72eb9 --- /dev/null +++ b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor2.ts @@ -0,0 +1,6 @@ +// @target:es5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public get accessor() { return 1; } +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts new file mode 100644 index 00000000000..bd1ce41bb12 --- /dev/null +++ b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor3.ts @@ -0,0 +1,6 @@ +// @target:es5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + public @dec get accessor() { return 1; } +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor4.ts b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor4.ts new file mode 100644 index 00000000000..72259e5d212 --- /dev/null +++ b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor4.ts @@ -0,0 +1,6 @@ +// @target:es5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec set accessor(value: number) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor5.ts b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor5.ts new file mode 100644 index 00000000000..ba5f82ab0ce --- /dev/null +++ b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor5.ts @@ -0,0 +1,6 @@ +// @target:es5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public set accessor(value: number) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts new file mode 100644 index 00000000000..686127858b0 --- /dev/null +++ b/tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor6.ts @@ -0,0 +1,6 @@ +// @target:es5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + public @dec set accessor(value: number) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/constructor/decoratorOnClassConstructor1.ts b/tests/cases/conformance/decorators/class/constructor/decoratorOnClassConstructor1.ts new file mode 100644 index 00000000000..dc1dcadb88a --- /dev/null +++ b/tests/cases/conformance/decorators/class/constructor/decoratorOnClassConstructor1.ts @@ -0,0 +1,5 @@ +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec constructor() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter1.ts b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter1.ts new file mode 100644 index 00000000000..264183962bd --- /dev/null +++ b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter1.ts @@ -0,0 +1,5 @@ +declare function dec(target: Function, parameterIndex: number): void; + +class C { + constructor(@dec p: number) {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter4.ts b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter4.ts new file mode 100644 index 00000000000..0c859b5c5c3 --- /dev/null +++ b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter4.ts @@ -0,0 +1,5 @@ +declare function dec(target: Function, parameterIndex: number): void; + +class C { + constructor(public @dec p: number) {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/decoratorOnClass1.ts b/tests/cases/conformance/decorators/class/decoratorOnClass1.ts new file mode 100644 index 00000000000..0ca2014323f --- /dev/null +++ b/tests/cases/conformance/decorators/class/decoratorOnClass1.ts @@ -0,0 +1,5 @@ +declare function dec(target: T): T; + +@dec +class C { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/decoratorOnClass2.ts b/tests/cases/conformance/decorators/class/decoratorOnClass2.ts new file mode 100644 index 00000000000..af05129eee0 --- /dev/null +++ b/tests/cases/conformance/decorators/class/decoratorOnClass2.ts @@ -0,0 +1,6 @@ +// @module: commonjs +declare function dec(target: T): T; + +@dec +export class C { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/decoratorOnClass3.ts b/tests/cases/conformance/decorators/class/decoratorOnClass3.ts new file mode 100644 index 00000000000..e8bbfa4d38b --- /dev/null +++ b/tests/cases/conformance/decorators/class/decoratorOnClass3.ts @@ -0,0 +1,7 @@ +// @module: commonjs +declare function dec(target: T): T; + +export +@dec +class C { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/decoratorOnClass4.ts b/tests/cases/conformance/decorators/class/decoratorOnClass4.ts new file mode 100644 index 00000000000..73caaf0c720 --- /dev/null +++ b/tests/cases/conformance/decorators/class/decoratorOnClass4.ts @@ -0,0 +1,5 @@ +declare function dec(): (target: T) => T; + +@dec() +class C { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/decoratorOnClass5.ts b/tests/cases/conformance/decorators/class/decoratorOnClass5.ts new file mode 100644 index 00000000000..73caaf0c720 --- /dev/null +++ b/tests/cases/conformance/decorators/class/decoratorOnClass5.ts @@ -0,0 +1,5 @@ +declare function dec(): (target: T) => T; + +@dec() +class C { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/decoratorOnClass8.ts b/tests/cases/conformance/decorators/class/decoratorOnClass8.ts new file mode 100644 index 00000000000..98533888036 --- /dev/null +++ b/tests/cases/conformance/decorators/class/decoratorOnClass8.ts @@ -0,0 +1,5 @@ +declare function dec(): (target: Function, paramIndex: number) => void; + +@dec() +class C { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod1.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod1.ts new file mode 100644 index 00000000000..7216be210f1 --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod1.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec method() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod10.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod10.ts new file mode 100644 index 00000000000..03f75f16552 --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod10.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: Function, paramIndex: number): void; + +class C { + @dec method() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod2.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod2.ts new file mode 100644 index 00000000000..7b7f089e4d4 --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod2.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public method() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts new file mode 100644 index 00000000000..aa80151cf83 --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod3.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + public @dec method() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod4.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod4.ts new file mode 100644 index 00000000000..92b35ae6189 --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod4.ts @@ -0,0 +1,6 @@ +// @target: ES6 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec ["method"]() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod5.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod5.ts new file mode 100644 index 00000000000..cd891b4231b --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod5.ts @@ -0,0 +1,6 @@ +// @target: ES6 +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; + +class C { + @dec() ["method"]() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod6.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod6.ts new file mode 100644 index 00000000000..a1fa7005892 --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod6.ts @@ -0,0 +1,6 @@ +// @target: ES6 +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; + +class C { + @dec ["method"]() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod7.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod7.ts new file mode 100644 index 00000000000..4bf86aa4995 --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod7.ts @@ -0,0 +1,6 @@ +// @target: ES6 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public ["method"]() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts new file mode 100644 index 00000000000..9bd2c192c2d --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: T): T; + +class C { + @dec method() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/method/parameter/decoratorOnClassMethodParameter1.ts b/tests/cases/conformance/decorators/class/method/parameter/decoratorOnClassMethodParameter1.ts new file mode 100644 index 00000000000..a350f2ff53d --- /dev/null +++ b/tests/cases/conformance/decorators/class/method/parameter/decoratorOnClassMethodParameter1.ts @@ -0,0 +1,5 @@ +declare function dec(target: Function, parameterIndex: number): void; + +class C { + method(@dec p: number) {} +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty1.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty1.ts new file mode 100644 index 00000000000..21955215e32 --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty1.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec prop; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty10.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty10.ts new file mode 100644 index 00000000000..65da7405f99 --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty10.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; + +class C { + @dec() prop; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty11.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty11.ts new file mode 100644 index 00000000000..d5f9e4bb9da --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty11.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; + +class C { + @dec prop; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts new file mode 100644 index 00000000000..0bc926e63b1 --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec prop; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty13.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty13.ts new file mode 100644 index 00000000000..2ef30cdc55e --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty13.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec prop: string; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty2.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty2.ts new file mode 100644 index 00000000000..9e8f8b4f222 --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty2.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + @dec public prop; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts new file mode 100644 index 00000000000..0a30aad910c --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty3.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; + +class C { + public @dec prop; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty6.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty6.ts new file mode 100644 index 00000000000..1dd184419af --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty6.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: Function): void; + +class C { + @dec prop; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty7.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty7.ts new file mode 100644 index 00000000000..599ed42ec4b --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty7.ts @@ -0,0 +1,6 @@ +// @target: ES5 +declare function dec(target: Function, paramIndex: number): void; + +class C { + @dec prop; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnArrowFunction.ts b/tests/cases/conformance/decorators/invalid/decoratorOnArrowFunction.ts new file mode 100644 index 00000000000..303aa505563 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnArrowFunction.ts @@ -0,0 +1,4 @@ +declare function dec(target: T): T; + +var F = @dec () => { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnEnum.ts b/tests/cases/conformance/decorators/invalid/decoratorOnEnum.ts new file mode 100644 index 00000000000..437d9ca3fbd --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnEnum.ts @@ -0,0 +1,5 @@ +declare function dec(target: T): T; + +@dec +enum E { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts b/tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts new file mode 100644 index 00000000000..090e7e1f0b5 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnEnum2.ts @@ -0,0 +1,5 @@ +declare function dec(target: T): T; + +enum E { + @dec A +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnFunctionDeclaration.ts b/tests/cases/conformance/decorators/invalid/decoratorOnFunctionDeclaration.ts new file mode 100644 index 00000000000..5b9c68ef247 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnFunctionDeclaration.ts @@ -0,0 +1,5 @@ +declare function dec(target: T): T; + +@dec +function F() { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnFunctionExpression.ts b/tests/cases/conformance/decorators/invalid/decoratorOnFunctionExpression.ts new file mode 100644 index 00000000000..00a0f258a67 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnFunctionExpression.ts @@ -0,0 +1,4 @@ +declare function dec(target: T): T; + +var F = @dec function () { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnImportEquals1.ts b/tests/cases/conformance/decorators/invalid/decoratorOnImportEquals1.ts new file mode 100644 index 00000000000..b5990252355 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnImportEquals1.ts @@ -0,0 +1,10 @@ +declare function dec(target: T): T; + +module M1 { + export var X: number; +} + +module M2 { + @dec + import X = M1.X; +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnImportEquals2.ts b/tests/cases/conformance/decorators/invalid/decoratorOnImportEquals2.ts new file mode 100644 index 00000000000..1b99e0e1863 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnImportEquals2.ts @@ -0,0 +1,9 @@ +// @module: commonjs +// @Filename: decoratorOnImportEquals2_0.ts +export var X; + +// @Filename: decoratorOnImportEquals2_1.ts +@dec +import lib = require('./decoratorOnImportEquals2_0'); + +declare function dec(target: T): T; \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnInterface.ts b/tests/cases/conformance/decorators/invalid/decoratorOnInterface.ts new file mode 100644 index 00000000000..9660f3995f0 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnInterface.ts @@ -0,0 +1,5 @@ +declare function dec(target: T): T; + +@dec +interface I { +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnInternalModule.ts b/tests/cases/conformance/decorators/invalid/decoratorOnInternalModule.ts new file mode 100644 index 00000000000..3f7c57b6ae9 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnInternalModule.ts @@ -0,0 +1,6 @@ +declare function dec(target: T): T; + +@dec +module M { + +} \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnTypeAlias.ts b/tests/cases/conformance/decorators/invalid/decoratorOnTypeAlias.ts new file mode 100644 index 00000000000..8ddcec1e16d --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnTypeAlias.ts @@ -0,0 +1,4 @@ +declare function dec(target: T): T; + +@dec +type T = number; \ No newline at end of file diff --git a/tests/cases/conformance/decorators/invalid/decoratorOnVar.ts b/tests/cases/conformance/decorators/invalid/decoratorOnVar.ts new file mode 100644 index 00000000000..b27adc69066 --- /dev/null +++ b/tests/cases/conformance/decorators/invalid/decoratorOnVar.ts @@ -0,0 +1,4 @@ +declare function dec(target: T): T; + +@dec +var x: number; \ No newline at end of file