org.jetbrains.kotlin.codegen
Class MemberCodegen<T extends JetElement>
java.lang.Object
org.jetbrains.kotlin.codegen.MemberCodegen<T>
- Direct Known Subclasses:
- ClassBodyCodegen, ClosureCodegen, PackagePartCodegen, ScriptCodegen
public abstract class MemberCodegen<T extends JetElement>
- extends java.lang.Object
Method Summary |
protected ClassDescriptor |
classForInnerClassRecord()
|
protected ExpressionCodegen |
createOrGetClInitCodegen()
|
protected void |
done()
|
static void |
genClassOrObject(CodegenContext parentContext,
JetClassOrObject aClass,
GenerationState state,
MemberCodegen<?> parentCodegen)
|
void |
genClassOrObject(JetClassOrObject aClass)
|
void |
generate()
|
protected abstract void |
generateBody()
|
protected void |
generateConstInstance(org.jetbrains.org.objectweb.asm.Type thisAsmType,
org.jetbrains.org.objectweb.asm.Type fieldAsmType,
kotlin.jvm.functions.Function1<org.jetbrains.org.objectweb.asm.commons.InstructionAdapter,kotlin.Unit> initialization)
|
protected abstract void |
generateDeclaration()
|
protected void |
generateInitializers(kotlin.jvm.functions.Function0<ExpressionCodegen> createCodegen)
|
protected abstract void |
generateKotlinAnnotation()
|
static void |
generateModuleNameField(GenerationState state,
ClassBuilder classBuilder)
|
protected void |
generatePropertyMetadataArrayFieldIfNeeded(org.jetbrains.org.objectweb.asm.Type thisAsmType)
|
static void |
generateReflectionObjectField(GenerationState state,
org.jetbrains.org.objectweb.asm.Type thisAsmType,
ClassBuilder classBuilder,
org.jetbrains.org.objectweb.asm.commons.Method factory,
java.lang.String fieldName,
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
|
protected void |
generateSyntheticParts()
|
void |
genFunctionOrProperty(JetDeclaration functionOrProperty)
|
java.lang.String |
getClassName()
|
FieldOwnerContext<?> |
getContext()
|
NameGenerator |
getInlineNameGenerator()
|
SourceMapper |
getOrCreateSourceMapper()
|
MemberCodegen<?> |
getParentCodegen()
|
ReifiedTypeParametersUsages |
getReifiedTypeParametersUsages()
|
java.lang.String |
toString()
|
protected void |
writeOuterClassAndEnclosingMethod()
|
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 JetElement 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()
generateKotlinAnnotation
protected abstract void generateKotlinAnnotation()
classForInnerClassRecord
@Nullable
protected ClassDescriptor classForInnerClassRecord()
done
protected void done()
genFunctionOrProperty
public void genFunctionOrProperty(@NotNull
JetDeclaration functionOrProperty)
genClassOrObject
public static void genClassOrObject(@NotNull
CodegenContext parentContext,
@NotNull
JetClassOrObject aClass,
@NotNull
GenerationState state,
@Nullable
MemberCodegen<?> parentCodegen)
genClassOrObject
public void genClassOrObject(JetClassOrObject 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)
generateReflectionObjectField
public static void generateReflectionObjectField(@NotNull
GenerationState state,
@NotNull
org.jetbrains.org.objectweb.asm.Type thisAsmType,
@NotNull
ClassBuilder classBuilder,
@NotNull
org.jetbrains.org.objectweb.asm.commons.Method factory,
@NotNull
java.lang.String fieldName,
@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
generateModuleNameField
public static void generateModuleNameField(@NotNull
GenerationState state,
@NotNull
ClassBuilder classBuilder)
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,
@NotNull
kotlin.jvm.functions.Function1<org.jetbrains.org.objectweb.asm.commons.InstructionAdapter,kotlin.Unit> initialization)