Skip to content

Commit 21dac73

Browse files
authored
Add type parameter scope tests (babel#454)
1 parent 3cda62e commit 21dac73

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

test/non-regression.js

+60
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,21 @@ describe("verify", () => {
250250
);
251251
});
252252

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+
253268
it("type parameter bounds (interfaces)", () => {
254269
verifyAndAssertMessages(
255270
unpad(`
@@ -264,6 +279,21 @@ describe("verify", () => {
264279
);
265280
});
266281

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+
267297
it("type parameter bounds (type aliases)", () => {
268298
verifyAndAssertMessages(
269299
unpad(`
@@ -279,6 +309,21 @@ describe("verify", () => {
279309
);
280310
});
281311

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+
282327
it("type parameter bounds (functions)", () => {
283328
verifyAndAssertMessages(
284329
unpad(`
@@ -292,6 +337,21 @@ describe("verify", () => {
292337
);
293338
});
294339

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+
295355
it("nested type annotations", () => {
296356
verifyAndAssertMessages(
297357
unpad(`

0 commit comments

Comments
 (0)