'use strict';

/**
Check if parentheses should to be added to a `node` when it's used as an `expression` of `ExpressionStatement`.

@param {Node} node - The AST node to check.
@param {SourceCode} sourceCode - The source code object.
@returns {boolean}
*/
function shouldAddParenthesesToExpressionStatementExpression(node) {
	switch (node.type) {
		case 'ObjectExpression': {
			return true;
		}

		case 'AssignmentExpression': {
			return node.left.type === 'ObjectPattern' || node.left.type === 'ArrayPattern';
		}

		default: {
			return false;
		}
	}
}

module.exports = shouldAddParenthesesToExpressionStatementExpression;
