From fc88a0186f787adf3edff1ffb60a54f67492b787 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 28 Dec 2015 17:45:36 +0300 Subject: [PATCH] Drop obsolete synthetic class kind in KotlinClassHeader --- .../load/kotlin/header/KotlinClassHeader.kt | 7 +---- ...eadKotlinClassHeaderAnnotationVisitor.java | 29 ++----------------- .../classFile/ClassFileDecompilerUtil.kt | 2 +- 3 files changed, 4 insertions(+), 34 deletions(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/KotlinClassHeader.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/KotlinClassHeader.kt index 503093a3f4f..71763c99701 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/KotlinClassHeader.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/KotlinClassHeader.kt @@ -23,7 +23,6 @@ class KotlinClassHeader( val version: BinaryVersion, val annotationData: Array?, val strings: Array?, - val syntheticClassKind: String?, val filePartClassNames: Array?, val multifileClassName: String?, val isInterfaceDefaultImpls: Boolean, @@ -37,11 +36,7 @@ class KotlinClassHeader( SYNTHETIC_CLASS } - override fun toString() = - "$kind " + - (if (isLocalClass) "(local) " else "") + - (if (syntheticClassKind != null) "$syntheticClassKind " else "") + - "version=$version" + override fun toString() = "$kind " + (if (isLocalClass) "(local) " else "") + "version=$version" } fun KotlinClassHeader.isCompatibleClassKind(): Boolean = version.isCompatible() && kind == KotlinClassHeader.Kind.CLASS diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java index 73112e0fccf..779d0c994b1 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java @@ -51,7 +51,6 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor private String[] annotationData = null; private String[] strings = null; private KotlinClassHeader.Kind headerKind = null; - private String syntheticClassKind = null; private boolean isInterfaceDefaultImpls = false; private boolean isLocalClass = false; @@ -71,8 +70,7 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor } return new KotlinClassHeader( - headerKind, version, annotationData, strings, syntheticClassKind, filePartClassNames, multifileClassName, - isInterfaceDefaultImpls, isLocalClass + headerKind, version, annotationData, strings, filePartClassNames, multifileClassName, isInterfaceDefaultImpls, isLocalClass ); } @@ -103,18 +101,7 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor KotlinClassHeader.Kind newKind = HEADER_KINDS.get(classId); if (newKind != null) { headerKind = newKind; - - switch (newKind) { - case CLASS: - case FILE_FACADE: - case MULTIFILE_CLASS: - case MULTIFILE_CLASS_PART: - return new HeaderAnnotationArgumentVisitor(); - case SYNTHETIC_CLASS: - return new SyntheticClassHeaderReader(); - default: - return null; - } + return new HeaderAnnotationArgumentVisitor(); } return null; @@ -227,16 +214,4 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor protected abstract void visitEnd(@NotNull String[] data); } } - - private class SyntheticClassHeaderReader extends HeaderAnnotationArgumentVisitor { - @Override - public void visitEnum(@NotNull Name name, @NotNull ClassId enumClassId, @NotNull Name enumEntryName) { - if ("Kind".equals(enumClassId.getShortClassName().asString()) && - enumClassId.isNestedClass() && - enumClassId.getOuterClassId().equals(ClassId.topLevel(KOTLIN_SYNTHETIC_CLASS)) && - "kind".equals(name.asString())) { - syntheticClassKind = enumEntryName.asString(); - } - } - } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/classFile/ClassFileDecompilerUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/classFile/ClassFileDecompilerUtil.kt index f0e383dac5a..9e6c2c48b96 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/classFile/ClassFileDecompilerUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/classFile/ClassFileDecompilerUtil.kt @@ -73,7 +73,7 @@ fun isKotlinInternalCompiledFile(file: VirtualFile): Boolean { return header.kind == KotlinClassHeader.Kind.SYNTHETIC_CLASS || header.kind == KotlinClassHeader.Kind.MULTIFILE_CLASS_PART || - header.isLocalClass || header.syntheticClassKind == "PACKAGE_PART" + header.isLocalClass } fun findMultifileClassParts(file: VirtualFile, classId: ClassId, kotlinClassHeader: KotlinClassHeader): List {