org.jetbrains.kotlin.codegen
Class MemberCodegen<T extends KtElement>
java.lang.Object
org.jetbrains.kotlin.codegen.MemberCodegen<T>
- Direct Known Subclasses:
- ClassBodyCodegen, ClosureCodegen, PackagePartCodegen, ScriptCodegen
public abstract class MemberCodegen<T extends KtElement>
- extends java.lang.Object
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
state
protected final GenerationState state
element
protected final T extends KtElement element
context
protected final FieldOwnerContext context
v
protected final ClassBuilder v
functionCodegen
protected final FunctionCodegen functionCodegen
propertyCodegen
protected final PropertyCodegen propertyCodegen
typeMapper
protected final JetTypeMapper typeMapper
bindingContext
protected final BindingContext bindingContext
fileClassesProvider
protected final JvmFileClassesProvider fileClassesProvider
innerClasses
protected final java.util.Collection<ClassDescriptor> innerClasses
clInit
protected ExpressionCodegen clInit
MemberCodegen
public MemberCodegen(@NotNull
GenerationState state,
@Nullable
MemberCodegen<?> parentCodegen,
@NotNull
FieldOwnerContext context,
T element,
@NotNull
ClassBuilder builder)
MemberCodegen
protected MemberCodegen(@NotNull
MemberCodegen<T> wrapped,
T declaration,
FieldOwnerContext codegenContext)
generate
public void generate()
generateDeclaration
protected abstract void generateDeclaration()
generateBody
protected abstract void generateBody()
generateSyntheticParts
protected void generateSyntheticParts()
generateKotlinMetadataAnnotation
protected abstract void generateKotlinMetadataAnnotation()
classForInnerClassRecord
@Nullable
protected ClassDescriptor classForInnerClassRecord()
markLineNumberForDescriptor
public static void markLineNumberForDescriptor(@Nullable
ClassDescriptor declarationDescriptor,
@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
markLineNumberForElement
public static void markLineNumberForElement(@NotNull
com.intellij.psi.PsiElement element,
@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
done
protected void done()
genFunctionOrProperty
public void genFunctionOrProperty(@NotNull
KtDeclaration functionOrProperty)
genClassOrObject
public static void genClassOrObject(@NotNull
CodegenContext parentContext,
@NotNull
KtClassOrObject aClass,
@NotNull
GenerationState state,
@Nullable
MemberCodegen<?> parentCodegen)
genClassOrObject
public void genClassOrObject(KtClassOrObject aClass)
writeOuterClassAndEnclosingMethod
protected void writeOuterClassAndEnclosingMethod()
getInlineNameGenerator
@NotNull
public NameGenerator getInlineNameGenerator()
createOrGetClInitCodegen
@NotNull
protected ExpressionCodegen createOrGetClInitCodegen()
generateInitializers
protected void generateInitializers(@NotNull
kotlin.jvm.functions.Function0<ExpressionCodegen> createCodegen)
generatePropertyMetadataArrayFieldIfNeeded
protected void generatePropertyMetadataArrayFieldIfNeeded(@NotNull
org.jetbrains.org.objectweb.asm.Type thisAsmType)
getClassName
public java.lang.String getClassName()
getContext
@NotNull
public FieldOwnerContext<?> getContext()
getReifiedTypeParametersUsages
@NotNull
public ReifiedTypeParametersUsages getReifiedTypeParametersUsages()
getParentCodegen
public MemberCodegen<?> getParentCodegen()
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
getOrCreateSourceMapper
@NotNull
public SourceMapper getOrCreateSourceMapper()
generateConstInstance
protected void generateConstInstance(@NotNull
org.jetbrains.org.objectweb.asm.Type thisAsmType,
@NotNull
org.jetbrains.org.objectweb.asm.Type fieldAsmType)
generateSyntheticAccessors
protected void generateSyntheticAccessors()
generateMethodCallTo
protected StackValue generateMethodCallTo(@NotNull
FunctionDescriptor functionDescriptor,
@Nullable
FunctionDescriptor accessorDescriptor,
@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv)