@@ -250,6 +250,21 @@ describe("verify", () => {
250
250
) ;
251
251
} ) ;
252
252
253
+ it ( "type parameter scope (classes)" , ( ) => {
254
+ verifyAndAssertMessages (
255
+ unpad ( `
256
+ T;
257
+ class Foo<T> {}
258
+ T;
259
+ new Foo();
260
+ ` ) ,
261
+ { "no-unused-vars" : 1 , "no-undef" : 1 } ,
262
+ [ "1:1 'T' is not defined. no-undef" ,
263
+ "2:11 'T' is defined but never used. no-unused-vars" ,
264
+ "3:1 'T' is not defined. no-undef" ]
265
+ ) ;
266
+ } ) ;
267
+
253
268
it ( "type parameter bounds (interfaces)" , ( ) => {
254
269
verifyAndAssertMessages (
255
270
unpad ( `
@@ -264,6 +279,21 @@ describe("verify", () => {
264
279
) ;
265
280
} ) ;
266
281
282
+ it ( "type parameter scope (interfaces)" , ( ) => {
283
+ verifyAndAssertMessages (
284
+ unpad ( `
285
+ T;
286
+ interface Foo<T> {};
287
+ T;
288
+ Foo;
289
+ ` ) ,
290
+ { "no-unused-vars" : 1 , "no-undef" : 1 } ,
291
+ [ "1:1 'T' is not defined. no-undef" ,
292
+ "2:15 'T' is defined but never used. no-unused-vars" ,
293
+ "3:1 'T' is not defined. no-undef" ]
294
+ ) ;
295
+ } ) ;
296
+
267
297
it ( "type parameter bounds (type aliases)" , ( ) => {
268
298
verifyAndAssertMessages (
269
299
unpad ( `
@@ -279,6 +309,21 @@ describe("verify", () => {
279
309
) ;
280
310
} ) ;
281
311
312
+ it ( "type parameter scope (type aliases)" , ( ) => {
313
+ verifyAndAssertMessages (
314
+ unpad ( `
315
+ T;
316
+ type Foo<T> = {};
317
+ T;
318
+ Foo;
319
+ ` ) ,
320
+ { "no-unused-vars" : 1 , "no-undef" : 1 } ,
321
+ [ "1:1 'T' is not defined. no-undef" ,
322
+ "2:10 'T' is defined but never used. no-unused-vars" ,
323
+ "3:1 'T' is not defined. no-undef" ]
324
+ ) ;
325
+ } ) ;
326
+
282
327
it ( "type parameter bounds (functions)" , ( ) => {
283
328
verifyAndAssertMessages (
284
329
unpad ( `
@@ -292,6 +337,21 @@ describe("verify", () => {
292
337
) ;
293
338
} ) ;
294
339
340
+ it ( "type parameter scope (functions)" , ( ) => {
341
+ verifyAndAssertMessages (
342
+ unpad ( `
343
+ T;
344
+ function log<T>() {}
345
+ T;
346
+ log;
347
+ ` ) ,
348
+ { "no-unused-vars" : 1 , "no-undef" : 1 } ,
349
+ [ "1:1 'T' is not defined. no-undef" ,
350
+ "2:14 'T' is defined but never used. no-unused-vars" ,
351
+ "3:1 'T' is not defined. no-undef" ]
352
+ ) ;
353
+ } ) ;
354
+
295
355
it ( "nested type annotations" , ( ) => {
296
356
verifyAndAssertMessages (
297
357
unpad ( `
0 commit comments