类 KotlinContextReceiverUsageMarker

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

    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
    This Kotlin metadata visitor marks the parameters of methods used, using the 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
    • 方法概要

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

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

        visitDelegatedProperty, visitProperty
    • 构造器详细资料

      • KotlinContextReceiverUsageMarker

        public KotlinContextReceiverUsageMarker()
    • 方法详细资料

      • visitAnyKotlinMetadata

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

        public void visitKotlinClassMetadata​(proguard.classfile.Clazz clazz,
                                             proguard.classfile.kotlin.KotlinClassKindMetadata kotlinClassKindMetadata)
        指定者:
        visitKotlinClassMetadata 在接口中 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
      • visitConstructor

        public void visitConstructor​(proguard.classfile.Clazz clazz,
                                     proguard.classfile.kotlin.KotlinClassKindMetadata kotlinClassKindMetadata,
                                     proguard.classfile.kotlin.KotlinConstructorMetadata kotlinConstructorMetadata)
        指定者:
        visitConstructor 在接口中 proguard.classfile.kotlin.visitor.KotlinConstructorVisitor
      • visitAnyProperty

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