Add type parameter scope tests (babel/babel-eslint#454)
This commit is contained in:
parent
e8b91f8862
commit
2ca65d5451
@ -250,6 +250,21 @@ describe("verify", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("type parameter scope (classes)", () => {
|
||||||
|
verifyAndAssertMessages(
|
||||||
|
unpad(`
|
||||||
|
T;
|
||||||
|
class Foo<T> {}
|
||||||
|
T;
|
||||||
|
new Foo();
|
||||||
|
`),
|
||||||
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
|
[ "1:1 'T' is not defined. no-undef",
|
||||||
|
"2:11 'T' is defined but never used. no-unused-vars",
|
||||||
|
"3:1 'T' is not defined. no-undef" ]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it("type parameter bounds (interfaces)", () => {
|
it("type parameter bounds (interfaces)", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
unpad(`
|
unpad(`
|
||||||
@ -264,6 +279,21 @@ describe("verify", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("type parameter scope (interfaces)", () => {
|
||||||
|
verifyAndAssertMessages(
|
||||||
|
unpad(`
|
||||||
|
T;
|
||||||
|
interface Foo<T> {};
|
||||||
|
T;
|
||||||
|
Foo;
|
||||||
|
`),
|
||||||
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
|
[ "1:1 'T' is not defined. no-undef",
|
||||||
|
"2:15 'T' is defined but never used. no-unused-vars",
|
||||||
|
"3:1 'T' is not defined. no-undef" ]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it("type parameter bounds (type aliases)", () => {
|
it("type parameter bounds (type aliases)", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
unpad(`
|
unpad(`
|
||||||
@ -279,6 +309,21 @@ describe("verify", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("type parameter scope (type aliases)", () => {
|
||||||
|
verifyAndAssertMessages(
|
||||||
|
unpad(`
|
||||||
|
T;
|
||||||
|
type Foo<T> = {};
|
||||||
|
T;
|
||||||
|
Foo;
|
||||||
|
`),
|
||||||
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
|
[ "1:1 'T' is not defined. no-undef",
|
||||||
|
"2:10 'T' is defined but never used. no-unused-vars",
|
||||||
|
"3:1 'T' is not defined. no-undef" ]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it("type parameter bounds (functions)", () => {
|
it("type parameter bounds (functions)", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
unpad(`
|
unpad(`
|
||||||
@ -292,6 +337,21 @@ describe("verify", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("type parameter scope (functions)", () => {
|
||||||
|
verifyAndAssertMessages(
|
||||||
|
unpad(`
|
||||||
|
T;
|
||||||
|
function log<T>() {}
|
||||||
|
T;
|
||||||
|
log;
|
||||||
|
`),
|
||||||
|
{ "no-unused-vars": 1, "no-undef": 1 },
|
||||||
|
[ "1:1 'T' is not defined. no-undef",
|
||||||
|
"2:14 'T' is defined but never used. no-unused-vars",
|
||||||
|
"3:1 'T' is not defined. no-undef" ]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it("nested type annotations", () => {
|
it("nested type annotations", () => {
|
||||||
verifyAndAssertMessages(
|
verifyAndAssertMessages(
|
||||||
unpad(`
|
unpad(`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user