From 9df98e65f842cf3acae09cbdd969966f42d64469 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 14 Oct 2017 18:40:54 +0200 Subject: update dependencies --- node_modules/tslint/lib/rules/preferObjectSpreadRule.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'node_modules/tslint/lib/rules/preferObjectSpreadRule.js') diff --git a/node_modules/tslint/lib/rules/preferObjectSpreadRule.js b/node_modules/tslint/lib/rules/preferObjectSpreadRule.js index c835ed693..8cd5005be 100644 --- a/node_modules/tslint/lib/rules/preferObjectSpreadRule.js +++ b/node_modules/tslint/lib/rules/preferObjectSpreadRule.js @@ -20,7 +20,7 @@ var tslib_1 = require("tslib"); var tsutils_1 = require("tsutils"); var ts = require("typescript"); var Lint = require("../index"); -var Rule = (function (_super) { +var Rule = /** @class */ (function (_super) { tslib_1.__extends(Rule, _super); function Rule() { return _super !== null && _super.apply(this, arguments) || this; @@ -53,7 +53,14 @@ function walk(ctx) { tsutils_1.isIdentifier(node.expression.expression) && node.expression.expression.text === "Object" && !ts.isFunctionLike(node.arguments[0]) && // Object.assign(...someArray) cannot be written as object spread - !node.arguments.some(tsutils_1.isSpreadElement)) { + !node.arguments.some(tsutils_1.isSpreadElement) && + /** + * @TODO + * Remove !node.arguments.some(isThisKeyword) when typescript get's + * support for spread types. + * PR: https://github.com/Microsoft/TypeScript/issues/10727 + */ + !node.arguments.some(isThisKeyword)) { if (node.arguments[0].kind === ts.SyntaxKind.ObjectLiteralExpression) { ctx.addFailureAtNode(node, Rule.FAILURE_STRING, createFix(node, ctx.sourceFile)); } @@ -103,6 +110,9 @@ function createFix(node, sourceFile) { } return fix; } +function isThisKeyword(node) { + return node.kind === ts.SyntaxKind.ThisKeyword; +} function needsParens(node) { switch (node.kind) { case ts.SyntaxKind.ConditionalExpression: -- cgit v1.2.3