TODO fixes: refactor

This commit is contained in:
pTalanov
2012-02-29 19:23:36 +04:00
parent 2499a3b845
commit 6e27f2ab3d
@@ -98,24 +98,23 @@ public final class JsAstUtils {
return new JsBinaryOperation(JsBinaryOperator.OR, op1, op2); return new JsBinaryOperation(JsBinaryOperator.OR, op1, op2);
} }
//TODO refactor
public static void setQualifier(@NotNull JsExpression selector, @Nullable JsExpression receiver) { public static void setQualifier(@NotNull JsExpression selector, @Nullable JsExpression receiver) {
assert (selector instanceof JsInvocation || selector instanceof JsNameRef);
if (selector instanceof JsInvocation) { if (selector instanceof JsInvocation) {
setQualifier(((JsInvocation) selector).getQualifier(), receiver); setQualifier(((JsInvocation) selector).getQualifier(), receiver);
return; return;
} }
if (selector instanceof JsNameRef) { setQualifierForNameRef((JsNameRef) selector, receiver);
JsNameRef nameRef = (JsNameRef) selector; }
JsExpression qualifier = nameRef.getQualifier();
if (qualifier == null) { private static void setQualifierForNameRef(@NotNull JsNameRef selector, @Nullable JsExpression receiver) {
nameRef.setQualifier(receiver); JsExpression qualifier = selector.getQualifier();
} if (qualifier == null) {
else { selector.setQualifier(receiver);
setQualifier(qualifier, receiver); }
} else {
return; setQualifier(qualifier, receiver);
} }
throw new AssertionError("Set qualifier should be applied only to JsInvocation or JsNameRef instances");
} }
public static JsNameRef qualified(@NotNull JsName selector, @Nullable JsExpression qualifier) { public static JsNameRef qualified(@NotNull JsName selector, @Nullable JsExpression qualifier) {