Class KotlinDefaultArgumentsFilter
java.lang.Object
org.jacoco.core.internal.analysis.filter.KotlinDefaultArgumentsFilter
- All Implemented Interfaces:
IFilter
Filters branches that Kotlin compiler generates for default arguments.
For each default argument Kotlin compiler generates following bytecode to
determine if it should be used or not:
ILOAD maskVar ICONST_x, BIPUSH, SIPUSH, LDC or LDC_W IAND IFEQ label default argument label:Where
maskVar is penultimate argument of synthetic method with
suffix "$default" or of synthetic constructor with last argument
"kotlin.jvm.internal.DefaultConstructorMarker". And its value can't be zero -
invocation with all arguments uses original non synthetic method, thus
IFEQ instructions should be ignored.-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidfilter(org.objectweb.asm.tree.MethodNode methodNode, IFilterContext context, IFilterOutput output) This method is called for every method.(package private) static booleanisDefaultArgumentsConstructor(org.objectweb.asm.tree.MethodNode methodNode) (package private) static booleanisDefaultArgumentsMethod(org.objectweb.asm.tree.MethodNode methodNode)
-
Constructor Details
-
KotlinDefaultArgumentsFilter
public KotlinDefaultArgumentsFilter()
-
-
Method Details
-
isDefaultArgumentsMethod
static boolean isDefaultArgumentsMethod(org.objectweb.asm.tree.MethodNode methodNode) -
isDefaultArgumentsConstructor
static boolean isDefaultArgumentsConstructor(org.objectweb.asm.tree.MethodNode methodNode) -
filter
public void filter(org.objectweb.asm.tree.MethodNode methodNode, IFilterContext context, IFilterOutput output) Description copied from interface:IFilterThis method is called for every method. The filter implementation is expected to inspect the provided method and report its result to the givenIFilterOutputinstance.
-