Minor, fix parameter type in MemberCodegen

This commit is contained in:
Alexander Udalov
2014-05-22 22:04:14 +04:00
parent 4ec8000121
commit a1d752c7ae
5 changed files with 14 additions and 16 deletions
@@ -93,7 +93,7 @@ public abstract class ClassBodyCodegen extends MemberCodegen<JetClassOrObject> {
protected void generateDeclaration(PropertyCodegen propertyCodegen, JetDeclaration declaration) {
if (declaration instanceof JetProperty || declaration instanceof JetNamedFunction) {
genFunctionOrProperty((JetTypeParameterListOwner) declaration, v);
genFunctionOrProperty(declaration, v);
}
else if (declaration instanceof JetClassOrObject) {
if (declaration instanceof JetEnumEntry && !enumEntryNeedSubclass(state.getBindingContext(), (JetEnumEntry) declaration)) {
@@ -106,10 +106,7 @@ public abstract class MemberCodegen<T extends JetElement/* TODO: & JetDeclaratio
v.done();
}
public void genFunctionOrProperty(
@NotNull JetTypeParameterListOwner functionOrProperty,
@NotNull ClassBuilder classBuilder
) {
public void genFunctionOrProperty(@NotNull JetDeclaration functionOrProperty, @NotNull ClassBuilder classBuilder) {
FunctionCodegen functionCodegen = new FunctionCodegen(context, classBuilder, state, this);
if (functionOrProperty instanceof JetNamedFunction) {
try {
@@ -32,7 +32,6 @@ import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.FieldOwnerContext;
import org.jetbrains.jet.codegen.context.MethodContext;
import org.jetbrains.jet.codegen.context.PackageContext;
import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.config.IncrementalCompilation;
import org.jetbrains.jet.descriptors.serialization.BitEncoding;
@@ -52,6 +51,7 @@ import org.jetbrains.jet.lang.resolve.MemberComparator;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames;
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature;
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaPackageFragmentScope;
import org.jetbrains.jet.lang.resolve.kotlin.BaseDescriptorDeserializer;
import org.jetbrains.jet.lang.resolve.name.FqName;
@@ -263,13 +263,13 @@ public class PackageCodegen {
@Nullable
private ClassBuilder generate(@NotNull JetFile file, @NotNull Map<CallableMemberDescriptor, Runnable> generateCallableMemberTasks) {
boolean generateSrcClass = false;
boolean generatePackagePart = false;
Type packagePartType = getPackagePartType(getPackageClassFqName(packageFragment.getFqName()), file.getVirtualFile());
PackageContext packagePartContext = CodegenContext.STATIC.intoPackagePart(packageFragment, packagePartType);
for (JetDeclaration declaration : file.getDeclarations()) {
if (declaration instanceof JetProperty || declaration instanceof JetNamedFunction) {
generateSrcClass = true;
generatePackagePart = true;
}
else if (declaration instanceof JetClassOrObject) {
JetClassOrObject classOrObject = (JetClassOrObject) declaration;
@@ -283,7 +283,7 @@ public class PackageCodegen {
}
}
if (!generateSrcClass) return null;
if (!generatePackagePart) return null;
ClassBuilder builder = state.getFactory().forPackagePart(packagePartType, file);
@@ -303,7 +303,7 @@ public class PackageCodegen {
new Runnable() {
@Override
public void run() {
memberCodegen.genFunctionOrProperty((JetTypeParameterListOwner) declaration, v.getClassBuilder());
memberCodegen.genFunctionOrProperty(declaration, v.getClassBuilder());
}
}
);
@@ -313,7 +313,6 @@ public class PackageCodegen {
return builder;
}
//TODO: FIX: Default method generated at facade without delegation
private MemberCodegen<?> getMemberCodegen(@NotNull FieldOwnerContext packageFacade) {
return new MemberCodegen<JetFile>(state, null, packageFacade, null, null) {
@Override
@@ -21,7 +21,10 @@ import kotlin.Function0;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.codegen.context.FieldOwnerContext;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.psi.JetDeclaration;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamedFunction;
import org.jetbrains.jet.lang.psi.JetProperty;
import org.jetbrains.org.objectweb.asm.Type;
import static org.jetbrains.jet.codegen.AsmUtil.writeKotlinSyntheticClassAnnotation;
@@ -58,7 +61,7 @@ public class PackagePartCodegen extends MemberCodegen<JetFile> {
protected void generateBody() {
for (JetDeclaration declaration : element.getDeclarations()) {
if (declaration instanceof JetNamedFunction || declaration instanceof JetProperty) {
genFunctionOrProperty((JetTypeParameterListOwner) declaration, v);
genFunctionOrProperty(declaration, v);
}
}
@@ -21,15 +21,14 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.MethodContext;
import org.jetbrains.jet.codegen.context.ScriptContext;
import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import org.jetbrains.jet.lang.psi.JetDeclaration;
import org.jetbrains.jet.lang.psi.JetScript;
import org.jetbrains.jet.lang.psi.JetTypeParameterListOwner;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature;
import org.jetbrains.org.objectweb.asm.MethodVisitor;
import org.jetbrains.org.objectweb.asm.Type;
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter;
@@ -208,7 +207,7 @@ public class ScriptCodegen extends MemberCodegen<JetScript> {
private void genMembers(@NotNull ClassBuilder classBuilder) {
for (JetDeclaration declaration : scriptDeclaration.getDeclarations()) {
genFunctionOrProperty((JetTypeParameterListOwner) declaration, classBuilder);
genFunctionOrProperty(declaration, classBuilder);
}
}
}