@Override public void visitPyCallExpression(final PyCallExpression node) { if (!isAvailable(node)) return; PyExpression callee = node.getCallee(); if (node.isCalleeText(PyNames.SET) && isInBuiltins(callee)) { PyExpression[] arguments = node.getArguments(); if (arguments.length == 1) { PyElement[] elements = getSetCallArguments(node); if (elements.length != 0) registerProblem( node, PyBundle.message("INSP.NAME.set.function.to.literal"), new ReplaceFunctionWithSetLiteralQuickFix()); } } }
@Nullable public static String extractDeprecationMessage(List<PyStatement> statements) { for (PyStatement statement : statements) { if (statement instanceof PyExpressionStatement) { PyExpressionStatement expressionStatement = (PyExpressionStatement) statement; if (expressionStatement.getExpression() instanceof PyCallExpression) { PyCallExpression callExpression = (PyCallExpression) expressionStatement.getExpression(); if (callExpression.isCalleeText(PyNames.WARN)) { PyReferenceExpression warningClass = callExpression.getArgument(1, PyReferenceExpression.class); if (warningClass != null && (PyNames.DEPRECATION_WARNING.equals(warningClass.getReferencedName()) || PyNames.PENDING_DEPRECATION_WARNING.equals( warningClass.getReferencedName()))) { return PyPsiUtils.strValue(callExpression.getArguments()[0]); } } } } } return null; }