Fix parent not being set for decorator nodes. (babel/babel-eslint#296)

This commit is contained in:
Rafał Ruciński 2016-04-25 23:51:43 +02:00
parent 0ccbceb9e8
commit cfd35799da
2 changed files with 12 additions and 0 deletions

View File

@ -72,6 +72,11 @@ function monkeypatch() {
assign(estraverseOfEslint.VisitorKeys, t.VISITOR_KEYS); assign(estraverseOfEslint.VisitorKeys, t.VISITOR_KEYS);
} }
estraverses.forEach(function (estraverse) {
estraverse.VisitorKeys.MethodDefinition.push("decorators");
estraverse.VisitorKeys.Property.push("decorators");
});
// monkeypatch escope // monkeypatch escope
var escope = require(escopeLoc); var escope = require(escopeLoc);
var analyze = escope.analyze; var analyze = escope.analyze;

View File

@ -1048,6 +1048,7 @@ describe("verify", function () {
[ [
"import classDeclaration from 'decorator';", "import classDeclaration from 'decorator';",
"import decoratorParameter from 'decorator';", "import decoratorParameter from 'decorator';",
"@classDeclaration((parameter) => parameter)",
"@classDeclaration(decoratorParameter)", "@classDeclaration(decoratorParameter)",
"@classDeclaration", "@classDeclaration",
"export class TextareaAutosize {}" "export class TextareaAutosize {}"
@ -1063,6 +1064,7 @@ describe("verify", function () {
"import classMethodDeclarationA from 'decorator';", "import classMethodDeclarationA from 'decorator';",
"import decoratorParameter from 'decorator';", "import decoratorParameter from 'decorator';",
"export class TextareaAutosize {", "export class TextareaAutosize {",
"@classMethodDeclarationA((parameter) => parameter)",
"@classMethodDeclarationA(decoratorParameter)", "@classMethodDeclarationA(decoratorParameter)",
"@classMethodDeclarationA", "@classMethodDeclarationA",
"methodDeclaration(e) {", "methodDeclaration(e) {",
@ -1081,9 +1083,11 @@ describe("verify", function () {
"import classMethodDeclarationA from 'decorator';", "import classMethodDeclarationA from 'decorator';",
"import decoratorParameter from 'decorator';", "import decoratorParameter from 'decorator';",
"export class TextareaAutosize {", "export class TextareaAutosize {",
"@classMethodDeclarationA((parameter) => parameter)",
"@classMethodDeclarationA(decoratorParameter)", "@classMethodDeclarationA(decoratorParameter)",
"@classMethodDeclarationA", "@classMethodDeclarationA",
"get bar() { }", "get bar() { }",
"@classMethodDeclarationA((parameter) => parameter)",
"@classMethodDeclarationA(decoratorParameter)", "@classMethodDeclarationA(decoratorParameter)",
"@classMethodDeclarationA", "@classMethodDeclarationA",
"set bar(val) { val; }", "set bar(val) { val; }",
@ -1100,6 +1104,7 @@ describe("verify", function () {
"import classMethodDeclarationA from 'decorator';", "import classMethodDeclarationA from 'decorator';",
"import decoratorParameter from 'decorator';", "import decoratorParameter from 'decorator';",
"var obj = {", "var obj = {",
"@classMethodDeclarationA((parameter) => parameter)",
"@classMethodDeclarationA(decoratorParameter)", "@classMethodDeclarationA(decoratorParameter)",
"@classMethodDeclarationA", "@classMethodDeclarationA",
"methodDeclaration(e) {", "methodDeclaration(e) {",
@ -1119,9 +1124,11 @@ describe("verify", function () {
"import classMethodDeclarationA from 'decorator';", "import classMethodDeclarationA from 'decorator';",
"import decoratorParameter from 'decorator';", "import decoratorParameter from 'decorator';",
"var obj = {", "var obj = {",
"@classMethodDeclarationA((parameter) => parameter)",
"@classMethodDeclarationA(decoratorParameter)", "@classMethodDeclarationA(decoratorParameter)",
"@classMethodDeclarationA", "@classMethodDeclarationA",
"get bar() { },", "get bar() { },",
"@classMethodDeclarationA((parameter) => parameter)",
"@classMethodDeclarationA(decoratorParameter)", "@classMethodDeclarationA(decoratorParameter)",
"@classMethodDeclarationA", "@classMethodDeclarationA",
"set bar(val) { val; }", "set bar(val) { val; }",