org.jetbrains.kotlin.codegen
Class AsmUtil

java.lang.Object
  extended by org.jetbrains.kotlin.codegen.AsmUtil

public class AsmUtil
extends java.lang.Object


Field Summary
static java.lang.String CAPTURED_RECEIVER_FIELD
           
static java.lang.String CAPTURED_THIS_FIELD
           
static int NO_FLAG_PACKAGE_PRIVATE
           
 
Method Summary
static java.lang.String asmDescByFqNameWithoutInnerClasses(FqName fqName)
           
static PrimitiveType asmPrimitiveTypeToLangPrimitiveType(org.jetbrains.org.objectweb.asm.Type type)
           
static org.jetbrains.org.objectweb.asm.Type asmTypeByFqNameWithoutInnerClasses(FqName fqName)
           
static org.jetbrains.org.objectweb.asm.Type boxType(org.jetbrains.org.objectweb.asm.Type type)
           
static int calculateInnerClassAccessFlags(ClassDescriptor innerClass)
           
static org.jetbrains.org.objectweb.asm.Type comparisonOperandType(org.jetbrains.org.objectweb.asm.Type left, org.jetbrains.org.objectweb.asm.Type right)
           
static org.jetbrains.org.objectweb.asm.Type correctElementType(org.jetbrains.org.objectweb.asm.Type type)
           
static void dup(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, org.jetbrains.org.objectweb.asm.Type type)
           
static void dup(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, org.jetbrains.org.objectweb.asm.Type topOfStack, org.jetbrains.org.objectweb.asm.Type afterTop)
           
static void genAreEqualCall(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
           
static int genAssignInstanceFieldFromParam(FieldInfo info, int index, org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv)
           
static void genClosureFields(CalculatedClosure closure, ClassBuilder v, JetTypeMapper typeMapper)
           
static void genClosureFields(java.util.List<com.intellij.openapi.util.Pair<java.lang.String,org.jetbrains.org.objectweb.asm.Type>> allFields, ClassBuilder builder)
           
static StackValue genEqualsForExpressionsOnStack(com.intellij.psi.tree.IElementType opToken, StackValue left, StackValue right)
           
static void genIncrement(org.jetbrains.org.objectweb.asm.Type expectedType, int myDelta, org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
           
static void genInvokeAppendMethod(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, org.jetbrains.org.objectweb.asm.Type type)
           
static StackValue genNotNullAssertions(GenerationState state, StackValue stackValue, RuntimeAssertionInfo runtimeAssertionInfo)
           
static void genNotNullAssertionsForParameters(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, GenerationState state, FunctionDescriptor descriptor, FrameMap frameMap)
           
static void genStringBuilderConstructor(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
           
static void genThrow(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, java.lang.String exception, java.lang.String message)
           
static StackValue genToString(StackValue receiver, org.jetbrains.org.objectweb.asm.Type receiverType)
           
static int getDefaultVisibilityFlag(Visibility visibility)
           
static int getDeprecatedAccessFlag(MemberDescriptor descriptor)
           
static int getMethodAsmFlags(FunctionDescriptor functionDescriptor, OwnerKind kind)
           
static int getReceiverIndex(CodegenContext context, CallableMemberDescriptor descriptor)
           
static java.lang.String getSimpleInternalName(java.lang.String internalName)
           
static int getVisibilityAccessFlag(MemberDescriptor descriptor)
           
static int getVisibilityAccessFlagForAnonymous(ClassDescriptor descriptor)
           
static int getVisibilityAccessFlagForClass(ClassDescriptor descriptor)
           
static int getVisibilityForBackingField(PropertyDescriptor propertyDescriptor, boolean isDelegate)
           
static java.lang.String internalNameByFqNameWithoutInnerClasses(FqName fqName)
           
static boolean isAbstractMethod(FunctionDescriptor functionDescriptor, OwnerKind kind)
           
static boolean isInstancePropertyWithStaticBackingField(PropertyDescriptor propertyDescriptor)
           
static boolean isIntPrimitive(org.jetbrains.org.objectweb.asm.Type type)
           
static boolean isNumberPrimitive(org.jetbrains.org.objectweb.asm.Type type)
           
static boolean isPrimitive(org.jetbrains.org.objectweb.asm.Type type)
           
static boolean isPrimitiveNumberClassDescriptor(DeclarationDescriptor descriptor)
           
static boolean isPropertyWithBackingFieldCopyInOuterClass(PropertyDescriptor propertyDescriptor)
           
static boolean isStaticKind(OwnerKind kind)
           
static boolean isStaticMethod(OwnerKind kind, CallableMemberDescriptor functionDescriptor)
           
static org.jetbrains.org.objectweb.asm.commons.Method method(java.lang.String name, org.jetbrains.org.objectweb.asm.Type returnType, org.jetbrains.org.objectweb.asm.Type... parameterTypes)
           
static org.jetbrains.org.objectweb.asm.Type numberFunctionOperandType(org.jetbrains.org.objectweb.asm.Type expectedType)
           
static void pop(org.jetbrains.org.objectweb.asm.MethodVisitor v, org.jetbrains.org.objectweb.asm.Type type)
           
static void pushDefaultPrimitiveValueOnStack(org.jetbrains.org.objectweb.asm.Type type, org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
           
static void pushDefaultValueOnStack(org.jetbrains.org.objectweb.asm.Type type, org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
           
static void putJavaLangClassInstance(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, org.jetbrains.org.objectweb.asm.Type type)
           
static org.jetbrains.org.objectweb.asm.Type stringValueOfType(org.jetbrains.org.objectweb.asm.Type type)
           
static void swap(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, org.jetbrains.org.objectweb.asm.Type stackTop, org.jetbrains.org.objectweb.asm.Type afterTop)
           
static org.jetbrains.org.objectweb.asm.Type unboxType(org.jetbrains.org.objectweb.asm.Type boxedType)
           
static void wrapJavaClassesIntoKClasses(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
           
static void wrapJavaClassIntoKClass(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
           
static void writeAnnotationData(org.jetbrains.org.objectweb.asm.AnnotationVisitor av, DescriptorSerializer serializer, com.google.protobuf.MessageLite message, boolean old)
           
static void writeKotlinSyntheticClassAnnotation(ClassBuilder v, GenerationState state)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NO_FLAG_PACKAGE_PRIVATE

public static final int NO_FLAG_PACKAGE_PRIVATE
See Also:
Constant Field Values

CAPTURED_RECEIVER_FIELD

public static final java.lang.String CAPTURED_RECEIVER_FIELD
See Also:
Constant Field Values

CAPTURED_THIS_FIELD

public static final java.lang.String CAPTURED_THIS_FIELD
See Also:
Constant Field Values
Method Detail

boxType

@NotNull
public static org.jetbrains.org.objectweb.asm.Type boxType(@NotNull
                                                                   org.jetbrains.org.objectweb.asm.Type type)

unboxType

@NotNull
public static org.jetbrains.org.objectweb.asm.Type unboxType(@NotNull
                                                                     org.jetbrains.org.objectweb.asm.Type boxedType)

isIntPrimitive

public static boolean isIntPrimitive(org.jetbrains.org.objectweb.asm.Type type)

isNumberPrimitive

public static boolean isNumberPrimitive(org.jetbrains.org.objectweb.asm.Type type)

isPrimitive

public static boolean isPrimitive(org.jetbrains.org.objectweb.asm.Type type)

isPrimitiveNumberClassDescriptor

public static boolean isPrimitiveNumberClassDescriptor(DeclarationDescriptor descriptor)

correctElementType

public static org.jetbrains.org.objectweb.asm.Type correctElementType(org.jetbrains.org.objectweb.asm.Type type)

asmPrimitiveTypeToLangPrimitiveType

@Nullable
public static PrimitiveType asmPrimitiveTypeToLangPrimitiveType(org.jetbrains.org.objectweb.asm.Type type)

method

@NotNull
public static org.jetbrains.org.objectweb.asm.commons.Method method(@NotNull
                                                                            java.lang.String name,
                                                                            @NotNull
                                                                            org.jetbrains.org.objectweb.asm.Type returnType,
                                                                            @NotNull
                                                                            org.jetbrains.org.objectweb.asm.Type... parameterTypes)

isAbstractMethod

public static boolean isAbstractMethod(FunctionDescriptor functionDescriptor,
                                       OwnerKind kind)

isStaticMethod

public static boolean isStaticMethod(OwnerKind kind,
                                     CallableMemberDescriptor functionDescriptor)

isStaticKind

public static boolean isStaticKind(OwnerKind kind)

getMethodAsmFlags

public static int getMethodAsmFlags(FunctionDescriptor functionDescriptor,
                                    OwnerKind kind)

getVisibilityAccessFlag

public static int getVisibilityAccessFlag(@NotNull
                                          MemberDescriptor descriptor)

getDefaultVisibilityFlag

public static int getDefaultVisibilityFlag(@NotNull
                                           Visibility visibility)

getVisibilityAccessFlagForClass

public static int getVisibilityAccessFlagForClass(ClassDescriptor descriptor)

getVisibilityAccessFlagForAnonymous

public static int getVisibilityAccessFlagForAnonymous(@NotNull
                                                      ClassDescriptor descriptor)

calculateInnerClassAccessFlags

public static int calculateInnerClassAccessFlags(@NotNull
                                                 ClassDescriptor innerClass)

getDeprecatedAccessFlag

public static int getDeprecatedAccessFlag(@NotNull
                                          MemberDescriptor descriptor)

stringValueOfType

public static org.jetbrains.org.objectweb.asm.Type stringValueOfType(org.jetbrains.org.objectweb.asm.Type type)

genThrow

public static void genThrow(@NotNull
                            org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                            @NotNull
                            java.lang.String exception,
                            @Nullable
                            java.lang.String message)

genClosureFields

public static void genClosureFields(CalculatedClosure closure,
                                    ClassBuilder v,
                                    JetTypeMapper typeMapper)

genClosureFields

public static void genClosureFields(java.util.List<com.intellij.openapi.util.Pair<java.lang.String,org.jetbrains.org.objectweb.asm.Type>> allFields,
                                    ClassBuilder builder)

genAssignInstanceFieldFromParam

public static int genAssignInstanceFieldFromParam(FieldInfo info,
                                                  int index,
                                                  org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv)

genStringBuilderConstructor

public static void genStringBuilderConstructor(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)

genInvokeAppendMethod

public static void genInvokeAppendMethod(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                                         org.jetbrains.org.objectweb.asm.Type type)

genToString

public static StackValue genToString(StackValue receiver,
                                     org.jetbrains.org.objectweb.asm.Type receiverType)

genEqualsForExpressionsOnStack

@NotNull
public static StackValue genEqualsForExpressionsOnStack(@NotNull
                                                                com.intellij.psi.tree.IElementType opToken,
                                                                @NotNull
                                                                StackValue left,
                                                                @NotNull
                                                                StackValue right)

genAreEqualCall

public static void genAreEqualCall(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)

genIncrement

public static void genIncrement(org.jetbrains.org.objectweb.asm.Type expectedType,
                                int myDelta,
                                org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)

swap

public static void swap(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                        org.jetbrains.org.objectweb.asm.Type stackTop,
                        org.jetbrains.org.objectweb.asm.Type afterTop)

genNotNullAssertionsForParameters

public static void genNotNullAssertionsForParameters(@NotNull
                                                     org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                                                     @NotNull
                                                     GenerationState state,
                                                     @NotNull
                                                     FunctionDescriptor descriptor,
                                                     @NotNull
                                                     FrameMap frameMap)

genNotNullAssertions

@NotNull
public static StackValue genNotNullAssertions(@NotNull
                                                      GenerationState state,
                                                      @NotNull
                                                      StackValue stackValue,
                                                      @Nullable
                                                      RuntimeAssertionInfo runtimeAssertionInfo)

pushDefaultValueOnStack

public static void pushDefaultValueOnStack(@NotNull
                                           org.jetbrains.org.objectweb.asm.Type type,
                                           @NotNull
                                           org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)

pushDefaultPrimitiveValueOnStack

public static void pushDefaultPrimitiveValueOnStack(@NotNull
                                                    org.jetbrains.org.objectweb.asm.Type type,
                                                    @NotNull
                                                    org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)

isInstancePropertyWithStaticBackingField

public static boolean isInstancePropertyWithStaticBackingField(@NotNull
                                                               PropertyDescriptor propertyDescriptor)

getVisibilityForBackingField

public static int getVisibilityForBackingField(@NotNull
                                               PropertyDescriptor propertyDescriptor,
                                               boolean isDelegate)

isPropertyWithBackingFieldCopyInOuterClass

public static boolean isPropertyWithBackingFieldCopyInOuterClass(@NotNull
                                                                 PropertyDescriptor propertyDescriptor)

comparisonOperandType

public static org.jetbrains.org.objectweb.asm.Type comparisonOperandType(org.jetbrains.org.objectweb.asm.Type left,
                                                                         org.jetbrains.org.objectweb.asm.Type right)

numberFunctionOperandType

@NotNull
public static org.jetbrains.org.objectweb.asm.Type numberFunctionOperandType(@NotNull
                                                                                     org.jetbrains.org.objectweb.asm.Type expectedType)

pop

public static void pop(@NotNull
                       org.jetbrains.org.objectweb.asm.MethodVisitor v,
                       @NotNull
                       org.jetbrains.org.objectweb.asm.Type type)

dup

public static void dup(@NotNull
                       org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                       @NotNull
                       org.jetbrains.org.objectweb.asm.Type type)

dup

public static void dup(@NotNull
                       org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                       @NotNull
                       org.jetbrains.org.objectweb.asm.Type topOfStack,
                       @NotNull
                       org.jetbrains.org.objectweb.asm.Type afterTop)

writeKotlinSyntheticClassAnnotation

public static void writeKotlinSyntheticClassAnnotation(@NotNull
                                                       ClassBuilder v,
                                                       @NotNull
                                                       GenerationState state)

writeAnnotationData

public static void writeAnnotationData(@NotNull
                                       org.jetbrains.org.objectweb.asm.AnnotationVisitor av,
                                       @NotNull
                                       DescriptorSerializer serializer,
                                       @NotNull
                                       com.google.protobuf.MessageLite message,
                                       boolean old)

asmDescByFqNameWithoutInnerClasses

@NotNull
public static java.lang.String asmDescByFqNameWithoutInnerClasses(@NotNull
                                                                          FqName fqName)

asmTypeByFqNameWithoutInnerClasses

@NotNull
public static org.jetbrains.org.objectweb.asm.Type asmTypeByFqNameWithoutInnerClasses(@NotNull
                                                                                              FqName fqName)

internalNameByFqNameWithoutInnerClasses

@NotNull
public static java.lang.String internalNameByFqNameWithoutInnerClasses(@NotNull
                                                                               FqName fqName)

getSimpleInternalName

@NotNull
public static java.lang.String getSimpleInternalName(@NotNull
                                                             java.lang.String internalName)

putJavaLangClassInstance

public static void putJavaLangClassInstance(@NotNull
                                            org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                                            @NotNull
                                            org.jetbrains.org.objectweb.asm.Type type)

wrapJavaClassIntoKClass

public static void wrapJavaClassIntoKClass(@NotNull
                                           org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)

wrapJavaClassesIntoKClasses

public static void wrapJavaClassesIntoKClasses(@NotNull
                                               org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)

getReceiverIndex

public static int getReceiverIndex(@NotNull
                                   CodegenContext context,
                                   @NotNull
                                   CallableMemberDescriptor descriptor)