Kotlin classes always have a signature

This commit is contained in:
Andrey Breslav
2013-01-23 19:38:06 +04:00
parent 0dc24bcd92
commit f84d00eec9
3 changed files with 12 additions and 12 deletions
@@ -232,16 +232,14 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
} }
private void writeClassSignatureIfNeeded(JvmClassSignature signature) { private void writeClassSignatureIfNeeded(JvmClassSignature signature) {
if (signature.getKotlinGenericSignature() != null || descriptor.getVisibility() != Visibilities.PUBLIC) { AnnotationVisitor annotationVisitor = v.newAnnotation(JvmStdlibNames.JET_CLASS.getDescriptor(), true);
AnnotationVisitor annotationVisitor = v.newAnnotation(JvmStdlibNames.JET_CLASS.getDescriptor(), true); annotationVisitor.visit(JvmStdlibNames.JET_CLASS_SIGNATURE, signature.getKotlinGenericSignature());
annotationVisitor.visit(JvmStdlibNames.JET_CLASS_SIGNATURE, signature.getKotlinGenericSignature()); int flags = getFlagsForVisibility(descriptor.getVisibility()) | getFlagsForClassKind(descriptor);
int flags = getFlagsForVisibility(descriptor.getVisibility()) | getFlagsForClassKind(descriptor); if (JvmStdlibNames.FLAGS_DEFAULT_VALUE != flags) {
if (JvmStdlibNames.FLAGS_DEFAULT_VALUE != flags) { annotationVisitor.visit(JvmStdlibNames.JET_FLAGS_FIELD, flags);
annotationVisitor.visit(JvmStdlibNames.JET_FLAGS_FIELD, flags);
}
annotationVisitor.visit(JvmStdlibNames.ABI_VERSION_NAME, JvmAbi.VERSION);
annotationVisitor.visitEnd();
} }
annotationVisitor.visit(JvmStdlibNames.ABI_VERSION_NAME, JvmAbi.VERSION);
annotationVisitor.visitEnd();
} }
@Nullable @Nullable
@@ -16,6 +16,7 @@
package org.jetbrains.jet.codegen.signature; package org.jetbrains.jet.codegen.signature;
import com.intellij.util.containers.Stack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.asm4.Type; import org.jetbrains.asm4.Type;
@@ -34,7 +35,6 @@ import org.jetbrains.jet.rt.signature.JetSignatureWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.intellij.util.containers.Stack;
public class BothSignatureWriter { public class BothSignatureWriter {
@@ -511,7 +511,7 @@ public class BothSignatureWriter {
return kotlinClassParameters; return kotlinClassParameters;
} }
@Nullable @NotNull
public String makeKotlinClassSignature() { public String makeKotlinClassSignature() {
checkState(State.CLASS_END); checkState(State.CLASS_END);
if (kotlinClassParameters == null) { if (kotlinClassParameters == null) {
@@ -16,6 +16,7 @@
package org.jetbrains.jet.codegen.signature; package org.jetbrains.jet.codegen.signature;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List; import java.util.List;
@@ -29,7 +30,7 @@ public class JvmClassSignature {
public JvmClassSignature( public JvmClassSignature(
String name, String superclassName, List<String> interfaces, String name, String superclassName, List<String> interfaces,
@Nullable String javaGenericSignature, @Nullable String kotlinGenericSignature @Nullable String javaGenericSignature, @NotNull String kotlinGenericSignature
) { ) {
this.name = name; this.name = name;
this.superclassName = superclassName; this.superclassName = superclassName;
@@ -54,6 +55,7 @@ public class JvmClassSignature {
return javaGenericSignature; return javaGenericSignature;
} }
@NotNull
public String getKotlinGenericSignature() { public String getKotlinGenericSignature() {
return kotlinGenericSignature; return kotlinGenericSignature;
} }