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 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 void genNotNullAssertionForField(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, GenerationState state, PropertyDescriptor descriptor)
           
static void genNotNullAssertionForMethod(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v, GenerationState state, ResolvedCall resolvedCall)
           
static StackValue genNotNullAssertions(GenerationState state, StackValue stackValue, Approximation.Info approximationInfo)
           
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 getDeprecatedAccessFlag(MemberDescriptor descriptor)
           
static int getMethodAsmFlags(FunctionDescriptor functionDescriptor, OwnerKind kind)
           
static int getReceiverIndex(CodegenContext context, CallableMemberDescriptor descriptor)
           
static int getVisibilityAccessFlag(MemberDescriptor descriptor)
           
static int getVisibilityAccessFlagForAnonymous(ClassDescriptor descriptor)
           
static int getVisibilityAccessFlagForClass(ClassDescriptor descriptor)
           
static int getVisibilityForSpecialPropertyBackingField(PropertyDescriptor propertyDescriptor, boolean isDelegate)
           
static java.lang.String internalNameByFqNameWithoutInnerClasses(FqName fqName)
           
static boolean isAbstractMethod(FunctionDescriptor functionDescriptor, OwnerKind kind)
           
static boolean isClassObjectWithBackingFieldsInOuter(DeclarationDescriptor classObject)
           
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 isPropertyWithBackingFieldInOuterClass(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 java.lang.String shortNameByAsmType(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 java.util.List<FieldInfo> transformCapturedParams(java.util.List<com.intellij.openapi.util.Pair<java.lang.String,org.jetbrains.org.objectweb.asm.Type>> allFields, org.jetbrains.org.objectweb.asm.Type owner)
           
static org.jetbrains.org.objectweb.asm.Type unboxType(org.jetbrains.org.objectweb.asm.Type boxedType)
           
static void writeKotlinSyntheticClassAnnotation(ClassBuilder v, JvmAnnotationNames.KotlinSyntheticClass.Kind kind)
           
static void writeOuterClassAndEnclosingMethod(ClassDescriptor descriptor, DeclarationDescriptor originalDescriptor, JetTypeMapper typeMapper, ClassBuilder v)
           
 
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)

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)

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)

transformCapturedParams

public static java.util.List<FieldInfo> transformCapturedParams(java.util.List<com.intellij.openapi.util.Pair<java.lang.String,org.jetbrains.org.objectweb.asm.Type>> allFields,
                                                                org.jetbrains.org.objectweb.asm.Type owner)

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)

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)

genNotNullAssertionForField

public static void genNotNullAssertionForField(@NotNull
                                               org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                                               @NotNull
                                               GenerationState state,
                                               @NotNull
                                               PropertyDescriptor descriptor)

genNotNullAssertionForMethod

public static void genNotNullAssertionForMethod(@NotNull
                                                org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
                                                @NotNull
                                                GenerationState state,
                                                @NotNull
                                                ResolvedCall resolvedCall)

genNotNullAssertions

@NotNull
public static StackValue genNotNullAssertions(@NotNull
                                                      GenerationState state,
                                                      @NotNull
                                                      StackValue stackValue,
                                                      @Nullable
                                                      Approximation.Info approximationInfo)

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)

isPropertyWithBackingFieldInOuterClass

public static boolean isPropertyWithBackingFieldInOuterClass(@NotNull
                                                             PropertyDescriptor propertyDescriptor)

getVisibilityForSpecialPropertyBackingField

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

isPropertyWithBackingFieldCopyInOuterClass

public static boolean isPropertyWithBackingFieldCopyInOuterClass(@NotNull
                                                                 PropertyDescriptor propertyDescriptor)

isClassObjectWithBackingFieldsInOuter

public static boolean isClassObjectWithBackingFieldsInOuter(@NotNull
                                                            DeclarationDescriptor classObject)

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)

writeKotlinSyntheticClassAnnotation

public static void writeKotlinSyntheticClassAnnotation(@NotNull
                                                       ClassBuilder v,
                                                       @NotNull
                                                       JvmAnnotationNames.KotlinSyntheticClass.Kind kind)

asmDescByFqNameWithoutInnerClasses

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

shortNameByAsmType

@NotNull
public static java.lang.String shortNameByAsmType(@NotNull
                                                          org.jetbrains.org.objectweb.asm.Type type)

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)

writeOuterClassAndEnclosingMethod

public static void writeOuterClassAndEnclosingMethod(@NotNull
                                                     ClassDescriptor descriptor,
                                                     @NotNull
                                                     DeclarationDescriptor originalDescriptor,
                                                     @NotNull
                                                     JetTypeMapper typeMapper,
                                                     @NotNull
                                                     ClassBuilder v)

putJavaLangClassInstance

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

getReceiverIndex

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