From 6a2938deaaceb730e04b6ba9526bb5e48d4396d0 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Wed, 3 Jun 2015 17:11:28 -0400 Subject: [PATCH] Merge pull request babel/babel-eslint#118 from hzoo/poly-types add flow exceptions for polymorphic types () - Ref babel/babel-eslint#109 --- eslint/babel-eslint-parser/index.js | 4 ++++ .../test/non-regression.js | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/eslint/babel-eslint-parser/index.js b/eslint/babel-eslint-parser/index.js index cd28c76545..3c764c99f8 100644 --- a/eslint/babel-eslint-parser/index.js +++ b/eslint/babel-eslint-parser/index.js @@ -163,6 +163,10 @@ function monkeypatch() { if (node.typeAnnotation) { visitTypeAnnotation.call(this, node.typeAnnotation); } else if (node.type === "Identifier") { + // exception for polymorphic types: , , etc + if (node.name.length === 1 && node.name === node.name.toUpperCase()) { + return; + } this.visit(node); } else { visitTypeAnnotation.call(this, node); diff --git a/eslint/babel-eslint-parser/test/non-regression.js b/eslint/babel-eslint-parser/test/non-regression.js index 2a837f779c..598498afab 100644 --- a/eslint/babel-eslint-parser/test/non-regression.js +++ b/eslint/babel-eslint-parser/test/non-regression.js @@ -296,6 +296,26 @@ describe("verify", function () { ); }); + it("polymorphpic types #109", function () { + verifyAndAssertMessages([ + "export default function groupByEveryN(array: Array, n: number): Array> {}" + ].join("\n"), + { "no-unused-vars": 1, "no-undef": 1 }, + [] + ); + }); + + it("types definition from import", function () { + verifyAndAssertMessages([ + "import type Promise from 'bluebird';", + "type Operation = () => Promise;", + "x: Operation;" + ].join("\n"), + { "no-unused-vars": 1, "no-undef": 1 }, + [] + ); + }); + it("1", function () { verifyAndAssertMessages( [