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