public class KotlinContextReceiverUsageMarker
extends java.lang.Object
implements proguard.classfile.kotlin.visitor.KotlinMetadataVisitor, proguard.classfile.kotlin.visitor.KotlinFunctionVisitor, proguard.classfile.kotlin.visitor.KotlinConstructorVisitor, proguard.classfile.kotlin.visitor.KotlinPropertyVisitor
ParameterUsageMarker, if those parameters correspond
to Kotlin context receivers.
This is done to ensure that the list of context receivers does not get out of sync, as otherwise unused context receiver parameters may be removed.
On the Java method level, each context receiver is passed as a leading parameter to a function's JVM method, a property getter/setter method, or a constructor.
context(Foo, Bar)
fun foo(string:String) { }
// -> public static void foo(LFoo;LBar;Ljava/lang/String;)V
TODO(T18173): Implement proper shrinking of context receivers when the underlying
parameter is not used i.e. consistently remove context receivers when the
underlying parameter is removed in e.g. MethodDescriptorShrinker
ParameterUsageMarker,
MethodDescriptorShrinker| Constructor and Description |
|---|
KotlinContextReceiverUsageMarker() |
| Modifier and Type | Method and Description |
|---|---|
void |
visitAnyFunction(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinMetadata kotlinMetadata,
proguard.classfile.kotlin.KotlinFunctionMetadata kotlinFunctionMetadata) |
void |
visitAnyKotlinMetadata(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinMetadata kotlinMetadata) |
void |
visitAnyProperty(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinDeclarationContainerMetadata kotlinDeclarationContainerMetadata,
proguard.classfile.kotlin.KotlinPropertyMetadata kotlinPropertyMetadata) |
void |
visitConstructor(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinClassKindMetadata kotlinClassKindMetadata,
proguard.classfile.kotlin.KotlinConstructorMetadata kotlinConstructorMetadata) |
void |
visitKotlinClassMetadata(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinClassKindMetadata kotlinClassKindMetadata) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitKotlinDeclarationContainerMetadata, visitKotlinFileFacadeMetadata, visitKotlinMultiFileFacadeMetadata, visitKotlinMultiFilePartMetadata, visitKotlinSyntheticClassMetadata, visitUnsupportedKotlinMetadatapublic void visitAnyKotlinMetadata(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinMetadata kotlinMetadata)
visitAnyKotlinMetadata in interface proguard.classfile.kotlin.visitor.KotlinMetadataVisitorpublic void visitKotlinClassMetadata(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinClassKindMetadata kotlinClassKindMetadata)
visitKotlinClassMetadata in interface proguard.classfile.kotlin.visitor.KotlinMetadataVisitorpublic void visitAnyFunction(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinMetadata kotlinMetadata,
proguard.classfile.kotlin.KotlinFunctionMetadata kotlinFunctionMetadata)
visitAnyFunction in interface proguard.classfile.kotlin.visitor.KotlinFunctionVisitorpublic void visitConstructor(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinClassKindMetadata kotlinClassKindMetadata,
proguard.classfile.kotlin.KotlinConstructorMetadata kotlinConstructorMetadata)
visitConstructor in interface proguard.classfile.kotlin.visitor.KotlinConstructorVisitorpublic void visitAnyProperty(proguard.classfile.Clazz clazz,
proguard.classfile.kotlin.KotlinDeclarationContainerMetadata kotlinDeclarationContainerMetadata,
proguard.classfile.kotlin.KotlinPropertyMetadata kotlinPropertyMetadata)
visitAnyProperty in interface proguard.classfile.kotlin.visitor.KotlinPropertyVisitor