Kotlin classes always have a signature
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user