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
@Override
public JsExpression translateAsGet() {
return translateAsGet(translateArrayExpression(), translateIndexExpressions());
return translateAsGet(translateArrayExpression());
}
@NotNull
protected JsExpression translateAsGet(@NotNull JsExpression arrayExpression,
@NotNull List<JsExpression> indexExpression) {
return translateAsMethodCall(arrayExpression, indexExpression, /*isGetter = */ true);
protected JsExpression translateAsGet(@NotNull JsExpression arrayExpression) {
return translateAsMethodCall(arrayExpression, /*isGetter = */ true);
}
@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) {
List<JsExpression> arguments = Lists.newArrayList(indexExpressions);
arguments.add(toSetTo);
return translateAsMethodCall(arrayExpression, arguments, /*isGetter = */ false);
return translateAsMethodCall(arrayExpression, /*isGetter = */ false);
}
@NotNull
private JsExpression translateAsMethodCall(@NotNull JsExpression arrayExpression,
@NotNull List<JsExpression> arguments,
boolean isGetter) {
return CallBuilder.build(context())
.receiver(arrayExpression)
.args(arguments)
.resolvedCall(BindingUtils.getResolvedCallForArrayAccess(bindingContext(), expression, isGetter))
.translate();
private JsExpression translateAsMethodCall(@NotNull JsExpression arrayExpression, boolean isGetter) {
return ReferencePackage.buildCall(context(),
BindingUtils.getResolvedCallForArrayAccess(bindingContext(), expression, isGetter),
arrayExpression);
}
@NotNull
@@ -45,7 +45,7 @@ public final class CachedArrayAccessTranslator extends ArrayAccessTranslator imp
@NotNull
@Override
public JsExpression translateAsGet() {
return translateAsGet(arrayExpression.reference(), toExpressionList(indexExpressions));
return translateAsGet(arrayExpression.reference());
}
@NotNull