Skip to content

Commit 5c37aa3

Browse files
committed
add tests
1 parent c036989 commit 5c37aa3

5 files changed

Lines changed: 125 additions & 1 deletion

tests/baselines/reference/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.errors.txt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationB
1111
tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts(75,7): error TS2815: 'arguments' cannot be referenced in property initializers or class static initialization block.
1212
tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts(77,9): error TS2815: 'arguments' cannot be referenced in property initializers or class static initialization block.
1313
tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts(96,26): error TS2815: 'arguments' cannot be referenced in property initializers or class static initialization block.
14+
tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts(102,15): error TS2815: 'arguments' cannot be referenced in property initializers or class static initialization block.
1415

1516

16-
==== tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts (13 errors) ====
17+
==== tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts (14 errors) ====
1718
function A() {
1819
return class T {
1920
a = arguments
@@ -138,4 +139,20 @@ tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationB
138139
!!! error TS2815: 'arguments' cannot be referenced in property initializers or class static initialization block.
139140
}
140141
}
142+
143+
function D6() {
144+
return class T {
145+
a = (x = arguments) => {} // should error
146+
~~~~~~~~~
147+
!!! error TS2815: 'arguments' cannot be referenced in property initializers or class static initialization block.
148+
}
149+
}
150+
151+
function D7() {
152+
return class T {
153+
a(x = arguments){ // ok
154+
155+
}
156+
}
157+
}
141158

tests/baselines/reference/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,20 @@ function D5() {
9797
a = (() => { return arguments; })() // should error
9898
}
9999
}
100+
101+
function D6() {
102+
return class T {
103+
a = (x = arguments) => {} // should error
104+
}
105+
}
106+
107+
function D7() {
108+
return class T {
109+
a(x = arguments){ // ok
110+
111+
}
112+
}
113+
}
100114

101115

102116
//// [argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js]
@@ -225,3 +239,23 @@ function D5() {
225239
return T;
226240
}());
227241
}
242+
function D6() {
243+
return /** @class */ (function () {
244+
function T() {
245+
this.a = function (x) {
246+
if (x === void 0) { x = arguments; }
247+
}; // should error
248+
}
249+
return T;
250+
}());
251+
}
252+
function D7() {
253+
return /** @class */ (function () {
254+
function T() {
255+
}
256+
T.prototype.a = function (x) {
257+
if (x === void 0) { x = arguments; }
258+
};
259+
return T;
260+
}());
261+
}

tests/baselines/reference/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.symbols

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,31 @@ function D5() {
186186
}
187187
}
188188

189+
function D6() {
190+
>D6 : Symbol(D6, Decl(argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts, 97, 1))
191+
192+
return class T {
193+
>T : Symbol(T, Decl(argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts, 100, 8))
194+
195+
a = (x = arguments) => {} // should error
196+
>a : Symbol(T.a, Decl(argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts, 100, 18))
197+
>x : Symbol(x, Decl(argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts, 101, 10))
198+
>arguments : Symbol(arguments)
199+
}
200+
}
201+
202+
function D7() {
203+
>D7 : Symbol(D7, Decl(argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts, 103, 1))
204+
205+
return class T {
206+
>T : Symbol(T, Decl(argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts, 106, 8))
207+
208+
a(x = arguments){ // ok
209+
>a : Symbol(T.a, Decl(argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts, 106, 18))
210+
>x : Symbol(x, Decl(argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts, 107, 7))
211+
>arguments : Symbol(arguments)
212+
213+
}
214+
}
215+
}
216+

tests/baselines/reference/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.types

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,3 +214,34 @@ function D5() {
214214
}
215215
}
216216

217+
function D6() {
218+
>D6 : () => typeof T
219+
220+
return class T {
221+
>class T { a = (x = arguments) => {} // should error } : typeof T
222+
>T : typeof T
223+
224+
a = (x = arguments) => {} // should error
225+
>a : (x?: any) => void
226+
>(x = arguments) => {} : (x?: any) => void
227+
>x : any
228+
>arguments : any
229+
}
230+
}
231+
232+
function D7() {
233+
>D7 : () => typeof T
234+
235+
return class T {
236+
>class T { a(x = arguments){ // ok } } : typeof T
237+
>T : typeof T
238+
239+
a(x = arguments){ // ok
240+
>a : (x?: IArguments) => void
241+
>x : IArguments
242+
>arguments : IArguments
243+
244+
}
245+
}
246+
}
247+

tests/cases/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,17 @@ function D5() {
9696
a = (() => { return arguments; })() // should error
9797
}
9898
}
99+
100+
function D6() {
101+
return class T {
102+
a = (x = arguments) => {} // should error
103+
}
104+
}
105+
106+
function D7() {
107+
return class T {
108+
a(x = arguments){ // ok
109+
110+
}
111+
}
112+
}

0 commit comments

Comments
 (0)