Fix for KT-9939: java.lang.VerifyError: Bad type on operand stack for Boolean convenience accessor

#KT-9939 Fixed
This commit is contained in:
Michael Bogdanov
2015-11-10 14:14:30 +03:00
parent de4ea45f20
commit a5771c6c1c
6 changed files with 72 additions and 1 deletions
@@ -1127,13 +1127,14 @@ public abstract class StackValue {
@Override
public void storeSelector(@NotNull Type topOfStackType, @NotNull InstructionAdapter v) {
coerceFrom(topOfStackType, v);
if (setter == null) {
coerceFrom(topOfStackType, v);
assert fieldName != null : "Property should have either a setter or a field name: " + descriptor;
assert backingFieldOwner != null : "Property should have either a setter or a backingFieldOwner: " + descriptor;
v.visitFieldInsn(isStaticStore ? PUTSTATIC : PUTFIELD, backingFieldOwner.getInternalName(), fieldName, this.type.getDescriptor());
}
else {
coerce(topOfStackType, ArraysKt.last(setter.getParameterTypes()), v);
setter.genInvokeInstruction(v);
}
}