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) {
if (signature.getKotlinGenericSignature() != null || descriptor.getVisibility() != Visibilities.PUBLIC) {
AnnotationVisitor annotationVisitor = v.newAnnotation(JvmStdlibNames.JET_CLASS.getDescriptor(), true);
annotationVisitor.visit(JvmStdlibNames.JET_CLASS_SIGNATURE, signature.getKotlinGenericSignature());
int flags = getFlagsForVisibility(descriptor.getVisibility()) | getFlagsForClassKind(descriptor);
if (JvmStdlibNames.FLAGS_DEFAULT_VALUE != flags) {
annotationVisitor.visit(JvmStdlibNames.JET_FLAGS_FIELD, flags);
}
annotationVisitor.visit(JvmStdlibNames.ABI_VERSION_NAME, JvmAbi.VERSION);
annotationVisitor.visitEnd();
AnnotationVisitor annotationVisitor = v.newAnnotation(JvmStdlibNames.JET_CLASS.getDescriptor(), true);
annotationVisitor.visit(JvmStdlibNames.JET_CLASS_SIGNATURE, signature.getKotlinGenericSignature());
int flags = getFlagsForVisibility(descriptor.getVisibility()) | getFlagsForClassKind(descriptor);
if (JvmStdlibNames.FLAGS_DEFAULT_VALUE != flags) {
annotationVisitor.visit(JvmStdlibNames.JET_FLAGS_FIELD, flags);
}
annotationVisitor.visit(JvmStdlibNames.ABI_VERSION_NAME, JvmAbi.VERSION);
annotationVisitor.visitEnd();
}
@Nullable
@@ -16,6 +16,7 @@
package org.jetbrains.jet.codegen.signature;
import com.intellij.util.containers.Stack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.asm4.Type;
@@ -34,7 +35,6 @@ import org.jetbrains.jet.rt.signature.JetSignatureWriter;
import java.util.ArrayList;
import java.util.List;
import com.intellij.util.containers.Stack;
public class BothSignatureWriter {
@@ -511,7 +511,7 @@ public class BothSignatureWriter {
return kotlinClassParameters;
}
@Nullable
@NotNull
public String makeKotlinClassSignature() {
checkState(State.CLASS_END);
if (kotlinClassParameters == null) {
@@ -16,6 +16,7 @@
package org.jetbrains.jet.codegen.signature;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -29,7 +30,7 @@ public class JvmClassSignature {
public JvmClassSignature(
String name, String superclassName, List<String> interfaces,
@Nullable String javaGenericSignature, @Nullable String kotlinGenericSignature
@Nullable String javaGenericSignature, @NotNull String kotlinGenericSignature
) {
this.name = name;
this.superclassName = superclassName;
@@ -54,6 +55,7 @@ public class JvmClassSignature {
return javaGenericSignature;
}
@NotNull
public String getKotlinGenericSignature() {
return kotlinGenericSignature;
}