Minor, KotlinClassFileHeader now exposes a FqName
This commit is contained in:
+6
-2
@@ -13,6 +13,7 @@ import org.jetbrains.jet.descriptors.serialization.PackageData;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.AbiVersionUtil;
|
import org.jetbrains.jet.lang.resolve.java.AbiVersionUtil;
|
||||||
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.name.FqName;
|
||||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -102,10 +103,13 @@ public final class KotlinClassFileHeader {
|
|||||||
return type.isValidAnnotation() && isAbiVersionCompatible(version);
|
return type.isValidAnnotation() && isAbiVersionCompatible(version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return FQ name for class header or package class FQ name for package header (e.g. <code>test.TestPackage</code>)
|
||||||
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public JvmClassName getJvmClassName() {
|
public FqName getFqName() {
|
||||||
assert jvmClassName != null;
|
assert jvmClassName != null;
|
||||||
return jvmClassName;
|
return jvmClassName.getFqName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String[] getAnnotationData() {
|
public String[] getAnnotationData() {
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public final class DecompiledDataFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private JetDecompiledData build() {
|
private JetDecompiledData build() {
|
||||||
FqName packageFqName = kotlinClassFileHeader.getJvmClassName().getFqName().parent();
|
FqName packageFqName = kotlinClassFileHeader.getFqName().parent();
|
||||||
appendDecompiledTextAndPackageName(packageFqName);
|
appendDecompiledTextAndPackageName(packageFqName);
|
||||||
KotlinClassFileHeader.HeaderType type = kotlinClassFileHeader.getType();
|
KotlinClassFileHeader.HeaderType type = kotlinClassFileHeader.getType();
|
||||||
if (type == KotlinClassFileHeader.HeaderType.PACKAGE) {
|
if (type == KotlinClassFileHeader.HeaderType.PACKAGE) {
|
||||||
@@ -87,8 +87,7 @@ public final class DecompiledDataFactory {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
assert type == KotlinClassFileHeader.HeaderType.CLASS;
|
assert type == KotlinClassFileHeader.HeaderType.CLASS;
|
||||||
ClassDescriptor cd = javaDescriptorResolver.resolveClass(kotlinClassFileHeader.getJvmClassName().getFqName(),
|
ClassDescriptor cd = javaDescriptorResolver.resolveClass(kotlinClassFileHeader.getFqName(), INCLUDE_KOTLIN_SOURCES);
|
||||||
INCLUDE_KOTLIN_SOURCES);
|
|
||||||
if (cd != null) {
|
if (cd != null) {
|
||||||
appendDescriptor(cd, "");
|
appendDescriptor(cd, "");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import java.io.DataInput;
|
|||||||
import java.io.DataOutput;
|
import java.io.DataOutput;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public final class KotlinClassFileIndex extends ScalarIndexExtension<FqName> {
|
public final class KotlinClassFileIndex extends ScalarIndexExtension<FqName> {
|
||||||
@@ -60,8 +59,7 @@ public final class KotlinClassFileIndex extends ScalarIndexExtension<FqName> {
|
|||||||
try {
|
try {
|
||||||
KotlinClassFileHeader header = KotlinClassFileHeader.readKotlinHeaderFromClassFile(inputData.getFile());
|
KotlinClassFileHeader header = KotlinClassFileHeader.readKotlinHeaderFromClassFile(inputData.getFile());
|
||||||
if (header.isKotlinCompiledFile()) {
|
if (header.isKotlinCompiledFile()) {
|
||||||
FqName fqName = header.getJvmClassName().getFqName();
|
return Collections.singletonMap(header.getFqName(), null);
|
||||||
return Collections.singletonMap(fqName, null);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Throwable e) {
|
catch (Throwable e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user