Decompilation support
- class header reader for KotlinMultifileClass, KotlinMultifileClassPart - proper implClassName for multifile class members
This commit is contained in:
+2
-1
@@ -226,7 +226,8 @@ public abstract class AbstractBinaryClassAnnotationAndConstantLoader<A : Any, C
|
||||
nameResolver: NameResolver
|
||||
): KotlinJvmBinaryClass? {
|
||||
if (proto.hasExtension(implClassName)) {
|
||||
return kotlinClassFinder.findKotlinClass(ClassId(packageFqName, nameResolver.getName(proto.getExtension(implClassName))))
|
||||
val implClassName = nameResolver.getName(proto.getExtension(implClassName))
|
||||
return kotlinClassFinder.findKotlinClass(ClassId(packageFqName, implClassName))
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
+16
@@ -120,6 +120,10 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor
|
||||
return new PackageHeaderReader();
|
||||
case FILE_FACADE:
|
||||
return new FileFacadeHeaderReader();
|
||||
case MULTIFILE_CLASS:
|
||||
return new MultifileClassHeaderReader();
|
||||
case MULTIFILE_CLASS_PART:
|
||||
return new MultifileClassPartHeaderReader();
|
||||
case SYNTHETIC_CLASS:
|
||||
return new SyntheticClassHeaderReader();
|
||||
default:
|
||||
@@ -259,6 +263,18 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor
|
||||
}
|
||||
}
|
||||
|
||||
private class MultifileClassHeaderReader extends HeaderAnnotationArgumentVisitor {
|
||||
public MultifileClassHeaderReader() {
|
||||
super(JvmClassName.byFqNameWithoutInnerClasses(KOTLIN_MULTIFILE_CLASS));
|
||||
}
|
||||
}
|
||||
|
||||
private class MultifileClassPartHeaderReader extends HeaderAnnotationArgumentVisitor {
|
||||
public MultifileClassPartHeaderReader() {
|
||||
super(JvmClassName.byFqNameWithoutInnerClasses(KOTLIN_MULTIFILE_CLASS_PART));
|
||||
}
|
||||
}
|
||||
|
||||
private class SyntheticClassHeaderReader extends HeaderAnnotationArgumentVisitor {
|
||||
public SyntheticClassHeaderReader() {
|
||||
super(KotlinSyntheticClass.CLASS_NAME);
|
||||
|
||||
Reference in New Issue
Block a user