JS backend: Use new CallTranslator for ArrayAccessTranslator

This commit is contained in:
Erokhin Stanislav
2013-12-26 22:26:53 +04:00
parent 46a045f969
commit 7a0f359aa0
2 changed files with 9 additions and 14 deletions
@@ -49,13 +49,12 @@ public class ArrayAccessTranslator extends AbstractTranslator implements AccessT
@NotNull @NotNull
@Override @Override
public JsExpression translateAsGet() { public JsExpression translateAsGet() {
return translateAsGet(translateArrayExpression(), translateIndexExpressions()); return translateAsGet(translateArrayExpression());
} }
@NotNull @NotNull
protected JsExpression translateAsGet(@NotNull JsExpression arrayExpression, protected JsExpression translateAsGet(@NotNull JsExpression arrayExpression) {
@NotNull List<JsExpression> indexExpression) { return translateAsMethodCall(arrayExpression, /*isGetter = */ true);
return translateAsMethodCall(arrayExpression, indexExpression, /*isGetter = */ true);
} }
@NotNull @NotNull
@@ -68,18 +67,14 @@ public class ArrayAccessTranslator extends AbstractTranslator implements AccessT
protected JsExpression translateAsSet(@NotNull JsExpression arrayExpression, @NotNull List<JsExpression> indexExpressions, @NotNull JsExpression toSetTo) { protected JsExpression translateAsSet(@NotNull JsExpression arrayExpression, @NotNull List<JsExpression> indexExpressions, @NotNull JsExpression toSetTo) {
List<JsExpression> arguments = Lists.newArrayList(indexExpressions); List<JsExpression> arguments = Lists.newArrayList(indexExpressions);
arguments.add(toSetTo); arguments.add(toSetTo);
return translateAsMethodCall(arrayExpression, arguments, /*isGetter = */ false); return translateAsMethodCall(arrayExpression, /*isGetter = */ false);
} }
@NotNull @NotNull
private JsExpression translateAsMethodCall(@NotNull JsExpression arrayExpression, private JsExpression translateAsMethodCall(@NotNull JsExpression arrayExpression, boolean isGetter) {
@NotNull List<JsExpression> arguments, return ReferencePackage.buildCall(context(),
boolean isGetter) { BindingUtils.getResolvedCallForArrayAccess(bindingContext(), expression, isGetter),
return CallBuilder.build(context()) arrayExpression);
.receiver(arrayExpression)
.args(arguments)
.resolvedCall(BindingUtils.getResolvedCallForArrayAccess(bindingContext(), expression, isGetter))
.translate();
} }
@NotNull @NotNull
@@ -45,7 +45,7 @@ public final class CachedArrayAccessTranslator extends ArrayAccessTranslator imp
@NotNull @NotNull
@Override @Override
public JsExpression translateAsGet() { public JsExpression translateAsGet() {
return translateAsGet(arrayExpression.reference(), toExpressionList(indexExpressions)); return translateAsGet(arrayExpression.reference());
} }
@NotNull @NotNull