From b5e0dbe8e876f14b584241a89aa7800342082849 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Thu, 17 Sep 2015 09:42:18 -0400 Subject: [PATCH] check AssignmentPattern types - fixes babel/babel-eslint#184 --- eslint/babel-eslint-parser/index.js | 9 +++++++-- .../test/non-regression.js | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/eslint/babel-eslint-parser/index.js b/eslint/babel-eslint-parser/index.js index f89554f130..3cf0b6537e 100644 --- a/eslint/babel-eslint-parser/index.js +++ b/eslint/babel-eslint-parser/index.js @@ -244,8 +244,13 @@ function monkeypatch() { // only visit if function parameters have types if (node.params) { for (var i = 0; i < node.params.length; i++) { - if (node.params[i].typeAnnotation) { - checkIdentifierOrVisit.call(this, node.params[i]); + var param = node.params[i]; + if (param.typeAnnotation) { + checkIdentifierOrVisit.call(this, param); + } else if (t.isAssignmentPattern(param)) { + if (param.left.typeAnnotation) { + checkIdentifierOrVisit.call(this, param.left); + } } } } diff --git a/eslint/babel-eslint-parser/test/non-regression.js b/eslint/babel-eslint-parser/test/non-regression.js index 0dbea848c2..f24bad04e5 100644 --- a/eslint/babel-eslint-parser/test/non-regression.js +++ b/eslint/babel-eslint-parser/test/non-regression.js @@ -1309,4 +1309,23 @@ describe("verify", function () { [ ] ) }); + + it("default param flow type no-unused-vars #184", function () { + verifyAndAssertMessages( + [ + "type ResolveOptionType = {", + "depth?: number,", + "identifier?: string", + "};", + "", + "export default function resolve(", + "options: ResolveOptionType = {}", + "): Object {", + "options;", + "}", + ].join("\n"), + { "no-unused-vars": 1, "no-undef": 1 }, + [ ] + ) + }); });