Move NO_INTRINSIC to FunctionIntrinsic

This commit is contained in:
Pavel V. Talanov
2012-07-18 17:15:55 +04:00
parent b45c14b0ab
commit 9a28f580bb
2 changed files with 17 additions and 19 deletions
@@ -18,11 +18,9 @@ package org.jetbrains.k2js.translate.intrinsic.functions;
import closurecompiler.internal.com.google.common.collect.Lists; import closurecompiler.internal.com.google.common.collect.Lists;
import closurecompiler.internal.com.google.common.collect.Maps; import closurecompiler.internal.com.google.common.collect.Maps;
import com.google.dart.compiler.backend.js.ast.JsExpression;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.intrinsic.functions.basic.FunctionIntrinsic; import org.jetbrains.k2js.translate.intrinsic.functions.basic.FunctionIntrinsic;
import org.jetbrains.k2js.translate.intrinsic.functions.factories.*; import org.jetbrains.k2js.translate.intrinsic.functions.factories.*;
@@ -34,22 +32,6 @@ import java.util.Map;
*/ */
public final class FunctionIntrinsics { public final class FunctionIntrinsics {
@NotNull
private static final FunctionIntrinsic NO_INTRINSIC = new FunctionIntrinsic() {
@Override
public boolean exists() {
return false;
}
@NotNull
@Override
public JsExpression apply(@Nullable JsExpression receiver,
@NotNull List<JsExpression> arguments,
@NotNull TranslationContext context) {
throw new UnsupportedOperationException("FunctionIntrinsic#NO_INTRINSIC_#apply");
}
};
@NotNull @NotNull
private final Map<FunctionDescriptor, FunctionIntrinsic> intrinsicCache = Maps.newHashMap(); private final Map<FunctionDescriptor, FunctionIntrinsic> intrinsicCache = Maps.newHashMap();
@@ -103,6 +85,6 @@ public final class FunctionIntrinsics {
return factory.getIntrinsic(descriptor); return factory.getIntrinsic(descriptor);
} }
} }
return NO_INTRINSIC; return FunctionIntrinsic.NO_INTRINSIC;
} }
} }
@@ -30,6 +30,22 @@ import java.util.List;
*/ */
public abstract class FunctionIntrinsic { public abstract class FunctionIntrinsic {
@NotNull
public static final FunctionIntrinsic NO_INTRINSIC = new FunctionIntrinsic() {
@Override
public boolean exists() {
return false;
}
@NotNull
@Override
public JsExpression apply(@Nullable JsExpression receiver,
@NotNull List<JsExpression> arguments,
@NotNull TranslationContext context) {
throw new UnsupportedOperationException("FunctionIntrinsic#NO_INTRINSIC_#apply");
}
};
@NotNull @NotNull
public abstract JsExpression apply(@Nullable JsExpression receiver, @NotNull List<JsExpression> arguments, public abstract JsExpression apply(@Nullable JsExpression receiver, @NotNull List<JsExpression> arguments,
@NotNull TranslationContext context); @NotNull TranslationContext context);