public class KotlinWhenStringFilter extends CoverageFilter
when by String construction, Kotlin compiler generates extra branches.
Firstly, check for null string if applicable:
Secondly, switch by hashCode:
And then in each branch of the switch there is a check for equality:
myContext| Constructor and Description |
|---|
KotlinWhenStringFilter() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
isApplicable(InstrumentationData context) |
void |
visitJumpInsn(int opcode,
org.jetbrains.coverage.org.objectweb.asm.Label label) |
void |
visitLdcInsn(java.lang.Object value) |
void |
visitLookupSwitchInsn(org.jetbrains.coverage.org.objectweb.asm.Label dflt,
int[] keys,
org.jetbrains.coverage.org.objectweb.asm.Label[] labels) |
void |
visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String descriptor,
boolean isInterface) |
void |
visitTableSwitchInsn(int min,
int max,
org.jetbrains.coverage.org.objectweb.asm.Label dflt,
org.jetbrains.coverage.org.objectweb.asm.Label... labels) |
initFiltergetDelegate, visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitFrame, visitIincInsn, visitInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitLabel, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitMaxs, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation, visitTypeInsn, visitVarInsnpublic boolean isApplicable(InstrumentationData context)
isApplicable in class CoverageFilterpublic void visitJumpInsn(int opcode,
org.jetbrains.coverage.org.objectweb.asm.Label label)
visitJumpInsn in class org.jetbrains.coverage.org.objectweb.asm.MethodVisitorpublic void visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String descriptor,
boolean isInterface)
visitMethodInsn in class org.jetbrains.coverage.org.objectweb.asm.MethodVisitorpublic void visitLookupSwitchInsn(org.jetbrains.coverage.org.objectweb.asm.Label dflt,
int[] keys,
org.jetbrains.coverage.org.objectweb.asm.Label[] labels)
visitLookupSwitchInsn in class org.jetbrains.coverage.org.objectweb.asm.MethodVisitorpublic void visitTableSwitchInsn(int min,
int max,
org.jetbrains.coverage.org.objectweb.asm.Label dflt,
org.jetbrains.coverage.org.objectweb.asm.Label... labels)
visitTableSwitchInsn in class org.jetbrains.coverage.org.objectweb.asm.MethodVisitorpublic void visitLdcInsn(java.lang.Object value)
visitLdcInsn in class org.jetbrains.coverage.org.objectweb.asm.MethodVisitor