PY-17392 Cleanup in PyDefaultArgumentQuickFix
authorMikhail Golubev <mikhail.golubev@jetbrains.com>
Wed, 28 Oct 2015 11:55:29 +0000 (14:55 +0300)
committerMikhail Golubev <mikhail.golubev@jetbrains.com>
Fri, 30 Oct 2015 12:59:43 +0000 (15:59 +0300)
* Added "final" modifiers
* Add braces to conditionals

python/src/com/jetbrains/python/inspections/quickfix/PyDefaultArgumentQuickFix.java

index bca245fec134b8ee51c6dc0b877ceda3c26365fa..4832014829651ddf63703a811871613d75f95263 100644 (file)
@@ -51,40 +51,45 @@ public class PyDefaultArgumentQuickFix implements LocalQuickFix {
 
   @Override
   public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
-    PsiElement defaultValue = descriptor.getPsiElement();
-    PyNamedParameter param = PsiTreeUtil.getParentOfType(defaultValue, PyNamedParameter.class);
-    PyFunction function = PsiTreeUtil.getParentOfType(defaultValue, PyFunction.class);
+    final PsiElement defaultValue = descriptor.getPsiElement();
+    final PyNamedParameter param = PsiTreeUtil.getParentOfType(defaultValue, PyNamedParameter.class);
+    final PyFunction function = PsiTreeUtil.getParentOfType(defaultValue, PyFunction.class);
     assert param != null;
-    String defName = param.getName();
+    final String defName = param.getName();
     if (function != null) {
-      PyElementGenerator elementGenerator = PyElementGenerator.getInstance(project);
-      PyStatementList list = function.getStatementList();
-      PyParameterList paramList = function.getParameterList();
+      final PyElementGenerator elementGenerator = PyElementGenerator.getInstance(project);
+      final PyStatementList list = function.getStatementList();
+      final PyParameterList paramList = function.getParameterList();
 
       final StringBuilder functionText = new StringBuilder("def " + function.getName() + "(");
-      int size = paramList.getParameters().length;
-      for (int i = 0; i != size; ++i) {
-        PyParameter p = paramList.getParameters()[i];
-        if (p == param)
+      final int size = paramList.getParameters().length;
+      for (int i = 0; i < size; i++) {
+        final PyParameter p = paramList.getParameters()[i];
+        if (p == param) {
           functionText.append(defName).append("=None");
-        else
+        }
+        else {
           functionText.append(p.getText());
-        if (i != size-1)
+        }
+        if (i != size-1) {
           functionText.append(", ");
+        }
       }
+      
       functionText.append("):\n\tif not ").append(defName).append(":\n\t\t").append(defName).append(" = ").append(defaultValue.getText());
       final PyStatement[] statements = list.getStatements();
-      PyStatement firstStatement = statements.length > 0 ? statements[0] : null;
-      PyFunction newFunction = elementGenerator.createFromText(LanguageLevel.forElement(function), PyFunction.class,
-                                                               functionText.toString());
+      final PyStatement firstStatement = statements.length > 0 ? statements[0] : null;
+      final PyFunction newFunction = elementGenerator.createFromText(LanguageLevel.forElement(function), PyFunction.class,
+                                                                     functionText.toString());
       if (firstStatement == null) {
         function.replace(newFunction);
       }
       else {
         final PyStatement ifStatement = newFunction.getStatementList().getStatements()[0];
-        PyStringLiteralExpression docString = function.getDocStringExpression();
-        if (docString != null)
+        final PyStringLiteralExpression docString = function.getDocStringExpression();
+        if (docString != null) {
           list.addAfter(ifStatement, firstStatement);
+        }
         else {
           list.addBefore(ifStatement, firstStatement);
         }