org.jetbrains.jet.codegen
Class ImplementationBodyCodegen

java.lang.Object
  extended by org.jetbrains.jet.codegen.binding.BindingContextAware
      extended by org.jetbrains.jet.codegen.binding.BindingTraceAware
          extended by org.jetbrains.jet.codegen.state.TypeMapperAware
              extended by org.jetbrains.jet.codegen.state.GenerationStateAware
                  extended by org.jetbrains.jet.codegen.MemberCodegen
                      extended by org.jetbrains.jet.codegen.ClassBodyCodegen
                          extended by org.jetbrains.jet.codegen.ImplementationBodyCodegen

public class ImplementationBodyCodegen
extends ClassBodyCodegen


Field Summary
 
Fields inherited from class org.jetbrains.jet.codegen.ClassBodyCodegen
context, descriptor, kind, myClass, v
 
Fields inherited from class org.jetbrains.jet.codegen.state.GenerationStateAware
state
 
Fields inherited from class org.jetbrains.jet.codegen.state.TypeMapperAware
typeMapper
 
Fields inherited from class org.jetbrains.jet.codegen.binding.BindingTraceAware
bindingTrace
 
Fields inherited from class org.jetbrains.jet.codegen.binding.BindingContextAware
bindingContext
 
Constructor Summary
ImplementationBodyCodegen(JetClassOrObject aClass, ClassContext context, ClassBuilder v, GenerationState state, MemberCodegen parentCodegen)
           
 
Method Summary
 void addClassObjectPropertyToCopy(PropertyDescriptor descriptor, java.lang.Object defaultValue)
           
protected  void generateDeclaration()
           
protected  void generateDeclaration(PropertyCodegen propertyCodegen, JetDeclaration declaration)
           
protected  void generateDelegates(ClassDescriptor toClass, StackValue field)
           
static void generateInitializers(ExpressionCodegen codegen, java.util.List<JetDeclaration> declarations, BindingContext bindingContext, GenerationState state)
           
protected  void generatePrimaryConstructor()
           
protected  void generateSyntheticAccessors()
           
protected  void generateSyntheticParts()
           
protected  void genInitSingleton(ClassDescriptor fieldTypeDescriptor, org.jetbrains.jet.codegen.StackValue.Field field)
           
protected  void getSuperClass()
           
static void initializeProperty(ExpressionCodegen codegen, BindingContext bindingContext, JetProperty property)
           
static boolean shouldInitializeProperty(JetProperty property, JetTypeMapper typeMapper)
           
static boolean shouldWriteFieldInitializer(PropertyDescriptor descriptor, JetTypeMapper mapper)
           
 
Methods inherited from class org.jetbrains.jet.codegen.ClassBodyCodegen
createOrGetClInitCodegen, createOrGetClInitMethod, generate, getPrimaryConstructorParameters
 
Methods inherited from class org.jetbrains.jet.codegen.MemberCodegen
genClassOrObject, genFunctionOrProperty, getParentCodegen
 
Methods inherited from class org.jetbrains.jet.codegen.state.GenerationStateAware
getState
 
Methods inherited from class org.jetbrains.jet.codegen.state.TypeMapperAware
getTypeMapper
 
Methods inherited from class org.jetbrains.jet.codegen.binding.BindingTraceAware
getBindingTrace
 
Methods inherited from class org.jetbrains.jet.codegen.binding.BindingContextAware
getBindingContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImplementationBodyCodegen

public ImplementationBodyCodegen(@NotNull
                                 JetClassOrObject aClass,
                                 @NotNull
                                 ClassContext context,
                                 @NotNull
                                 ClassBuilder v,
                                 @NotNull
                                 GenerationState state,
                                 @Nullable
                                 MemberCodegen parentCodegen)
Method Detail

generateDeclaration

protected void generateDeclaration()
Specified by:
generateDeclaration in class ClassBodyCodegen

getSuperClass

protected void getSuperClass()

generateSyntheticParts

protected void generateSyntheticParts()
Overrides:
generateSyntheticParts in class ClassBodyCodegen

generateSyntheticAccessors

protected void generateSyntheticAccessors()

genInitSingleton

protected void genInitSingleton(ClassDescriptor fieldTypeDescriptor,
                                org.jetbrains.jet.codegen.StackValue.Field field)

generatePrimaryConstructor

protected void generatePrimaryConstructor()

generateDeclaration

protected void generateDeclaration(PropertyCodegen propertyCodegen,
                                   JetDeclaration declaration)
Overrides:
generateDeclaration in class ClassBodyCodegen

generateInitializers

public static void generateInitializers(@NotNull
                                        ExpressionCodegen codegen,
                                        @NotNull
                                        java.util.List<JetDeclaration> declarations,
                                        @NotNull
                                        BindingContext bindingContext,
                                        @NotNull
                                        GenerationState state)

initializeProperty

public static void initializeProperty(@NotNull
                                      ExpressionCodegen codegen,
                                      @NotNull
                                      BindingContext bindingContext,
                                      @NotNull
                                      JetProperty property)

shouldWriteFieldInitializer

public static boolean shouldWriteFieldInitializer(PropertyDescriptor descriptor,
                                                  JetTypeMapper mapper)

shouldInitializeProperty

public static boolean shouldInitializeProperty(@NotNull
                                               JetProperty property,
                                               @NotNull
                                               JetTypeMapper typeMapper)

generateDelegates

protected void generateDelegates(ClassDescriptor toClass,
                                 StackValue field)

addClassObjectPropertyToCopy

public void addClassObjectPropertyToCopy(PropertyDescriptor descriptor,
                                         java.lang.Object defaultValue)