PsiMethodCallExpression (PsiMethodCallExpression call) { final PsiExpression[] arguments = call.getArgumentList().getExpressions(); if (arguments.length != 1) return null; final PsiExpression argument = PsiUtil.skipParenthesizedExprDown(arguments[0]); if (!(argument instanceof PsiMethodCallExpression call2)) return null; final PsiExpression qualifierExpression1 = ExpressionUtils.getEffectiveQualifier(call.getMethodExpression()); final PsiExpression qualifierExpression2 = ExpressionUtils.getEffectiveQualifier(call2.getMethodExpression()); if (qualifierExpression1 == null || qualifierExpression2 == null) return null; final PsiMethod setter = call.resolveMethod(); final PsiMethod getter = call2.resolveMethod(); final PsiMethod get = PropertyUtil.getReversePropertyMethod(setter); final PsiMethod set = PropertyUtil.getReversePropertyMethod(getter); if (get == null || set == null) return null; CommentTracker ct = new CommentTracker(); final String text = ct.text(qualifierExpression2) + "." + set.getName() + "(" + ct.text(qualifierExpression1) + "." + get.getName() + "())"; return (PsiMethodCallExpression)ct.replaceAndRestoreComments(call, text); }