类 KotlinContextParameterUsageMarker

  • 所有已实现的接口:
    proguard.classfile.kotlin.visitor.KotlinFunctionVisitor, proguard.classfile.kotlin.visitor.KotlinMetadataVisitor, proguard.classfile.kotlin.visitor.KotlinPropertyVisitor

    public class KotlinContextParameterUsageMarker
    extends java.lang.Object
    implements proguard.classfile.kotlin.visitor.KotlinMetadataVisitor, proguard.classfile.kotlin.visitor.KotlinFunctionVisitor, proguard.classfile.kotlin.visitor.KotlinPropertyVisitor
    This Kotlin metadata visitor marks the parameters of methods used, using the ParameterUsageMarker, if those parameters correspond to Kotlin context parameters.

    This is done to ensure that the list of context parameters does not get out of sync, as otherwise unused context receiver parameters may be removed.

    On the Java method level, each context parameter is passed as a leading parameter to a function's JVM method or a property getter/setter method.

    context(foo: Foo, bar: 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 parameters when the underlying parameter is removed in e.g. MethodDescriptorShrinker

    另请参阅:
    ParameterUsageMarker, MethodDescriptorShrinker
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      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)  
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • 从接口继承的方法 proguard.classfile.kotlin.visitor.KotlinFunctionVisitor

        visitFunction, visitSyntheticFunction
      • 从接口继承的方法 proguard.classfile.kotlin.visitor.KotlinMetadataVisitor

        visitKotlinClassMetadata, visitKotlinDeclarationContainerMetadata, visitKotlinFileFacadeMetadata, visitKotlinMultiFileFacadeMetadata, visitKotlinMultiFilePartMetadata, visitKotlinSyntheticClassMetadata, visitUnsupportedKotlinMetadata
      • 从接口继承的方法 proguard.classfile.kotlin.visitor.KotlinPropertyVisitor

        visitDelegatedProperty, visitProperty
    • 构造器详细资料

      • KotlinContextParameterUsageMarker

        public KotlinContextParameterUsageMarker()
    • 方法详细资料

      • visitAnyKotlinMetadata

        public void visitAnyKotlinMetadata​(proguard.classfile.Clazz clazz,
                                           proguard.classfile.kotlin.KotlinMetadata kotlinMetadata)
        指定者:
        visitAnyKotlinMetadata 在接口中 proguard.classfile.kotlin.visitor.KotlinMetadataVisitor
      • visitAnyFunction

        public void visitAnyFunction​(proguard.classfile.Clazz clazz,
                                     proguard.classfile.kotlin.KotlinMetadata kotlinMetadata,
                                     proguard.classfile.kotlin.KotlinFunctionMetadata kotlinFunctionMetadata)
        指定者:
        visitAnyFunction 在接口中 proguard.classfile.kotlin.visitor.KotlinFunctionVisitor
      • visitAnyProperty

        public void visitAnyProperty​(proguard.classfile.Clazz clazz,
                                     proguard.classfile.kotlin.KotlinDeclarationContainerMetadata kotlinDeclarationContainerMetadata,
                                     proguard.classfile.kotlin.KotlinPropertyMetadata kotlinPropertyMetadata)
        指定者:
        visitAnyProperty 在接口中 proguard.classfile.kotlin.visitor.KotlinPropertyVisitor