Get rid of some genLazy
This commit is contained in:
@@ -101,9 +101,6 @@ open class BranchedValue(val arg1: StackValue, val arg2: StackValue? = null, val
|
||||
}
|
||||
|
||||
fun createInvertValue(argument: StackValue): StackValue {
|
||||
if (argument.type != Type.BOOLEAN_TYPE) {
|
||||
throw UnsupportedOperationException("operand of ! must be boolean")
|
||||
}
|
||||
return Invert(condJump(argument))
|
||||
}
|
||||
|
||||
|
||||
@@ -3051,11 +3051,11 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
}
|
||||
|
||||
private StackValue generateBooleanAnd(JetBinaryExpression expression) {
|
||||
return StackValue.and(genLazy(expression.getLeft(), Type.BOOLEAN_TYPE), genLazy(expression.getRight(), Type.BOOLEAN_TYPE));
|
||||
return StackValue.and(gen(expression.getLeft()), gen(expression.getRight()));
|
||||
}
|
||||
|
||||
private StackValue generateBooleanOr(JetBinaryExpression expression) {
|
||||
return StackValue.or(genLazy(expression.getLeft(), Type.BOOLEAN_TYPE), genLazy(expression.getRight(), Type.BOOLEAN_TYPE));
|
||||
return StackValue.or(gen(expression.getLeft()), gen(expression.getRight()));
|
||||
}
|
||||
|
||||
private StackValue generateEquals(JetExpression left, JetExpression right, IElementType opToken) {
|
||||
|
||||
@@ -28,17 +28,6 @@ import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||
import org.jetbrains.org.objectweb.asm.Type
|
||||
|
||||
public class Not : IntrinsicMethod() {
|
||||
fun generateImpl(codegen: ExpressionCodegen, returnType: Type, element: PsiElement?, arguments: List<JetExpression>, receiver: StackValue): StackValue {
|
||||
val stackValue: StackValue
|
||||
if (arguments.size() == 1) {
|
||||
stackValue = codegen.gen(arguments.get(0))
|
||||
}
|
||||
else {
|
||||
stackValue = receiver
|
||||
}
|
||||
return StackValue.not(StackValue.coercion(stackValue, Type.BOOLEAN_TYPE))
|
||||
}
|
||||
|
||||
override fun toCallable(method: CallableMethod): Callable {
|
||||
return object : IntrinsicCallable(method) {
|
||||
override fun invokeMethodWithArguments(resolvedCall: ResolvedCall<*>, receiver: StackValue, codegen: ExpressionCodegen): StackValue {
|
||||
@@ -50,7 +39,7 @@ public class Not : IntrinsicMethod() {
|
||||
else {
|
||||
StackValue.receiver(resolvedCall, receiver, codegen, this)
|
||||
}
|
||||
return StackValue.not(StackValue.coercion(stackValue, Type.BOOLEAN_TYPE))
|
||||
return StackValue.not(stackValue)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user