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 {
|
fun createInvertValue(argument: StackValue): StackValue {
|
||||||
if (argument.type != Type.BOOLEAN_TYPE) {
|
|
||||||
throw UnsupportedOperationException("operand of ! must be boolean")
|
|
||||||
}
|
|
||||||
return Invert(condJump(argument))
|
return Invert(condJump(argument))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3051,11 +3051,11 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
|||||||
}
|
}
|
||||||
|
|
||||||
private StackValue generateBooleanAnd(JetBinaryExpression expression) {
|
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) {
|
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) {
|
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
|
import org.jetbrains.org.objectweb.asm.Type
|
||||||
|
|
||||||
public class Not : IntrinsicMethod() {
|
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 {
|
override fun toCallable(method: CallableMethod): Callable {
|
||||||
return object : IntrinsicCallable(method) {
|
return object : IntrinsicCallable(method) {
|
||||||
override fun invokeMethodWithArguments(resolvedCall: ResolvedCall<*>, receiver: StackValue, codegen: ExpressionCodegen): StackValue {
|
override fun invokeMethodWithArguments(resolvedCall: ResolvedCall<*>, receiver: StackValue, codegen: ExpressionCodegen): StackValue {
|
||||||
@@ -50,7 +39,7 @@ public class Not : IntrinsicMethod() {
|
|||||||
else {
|
else {
|
||||||
StackValue.receiver(resolvedCall, receiver, codegen, this)
|
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