Package org.jacoco.core.internal.analysis.filter

## Class KotlinDefaultArgumentsFilter

- java.lang.Object
- - org.jacoco.core.internal.analysis.filter.KotlinDefaultArgumentsFilter

All Implemented Interfaces:
  `IFilter`

    public final class KotlinDefaultArgumentsFilter
    extends java.lang.Object
    implements 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". And its value can't be zero - invocation with all arguments uses original non synthetic method, thus `IFEQ` instructions should be ignored.

### Constructor Summary

Constructors
`KotlinDefaultArgumentsFilter()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `filter​(org.objectweb.asm.tree.MethodNode methodNode, IFilterContext context, IFilterOutput output)` This method is called for every method.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### KotlinDefaultArgumentsFilter

    public KotlinDefaultArgumentsFilter()

### Method Detail

#### filter

    public void filter​(org.objectweb.asm.tree.MethodNode methodNode,
                       IFilterContext context,
                       IFilterOutput output)

Description copied from interface: `IFilter`
This method is called for every method. The filter implementation is expected to inspect the provided method and report its result to the given `IFilterOutput` instance.

Specified by:
  `filter` in interface `IFilter`
Parameters:
  `methodNode` - method to inspect
  `context` - context information for the method
  `output` - callback to report filtering results to