diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PackagePartCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PackagePartCodegen.java index ce2e7fda1da..d29f827b4c6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PackagePartCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PackagePartCodegen.java @@ -77,7 +77,7 @@ public class PackagePartCodegen extends MemberCodegen { ); v.visitSource(jetFile.getName(), null); - writeKotlinPackageFragmentAnnotation(); + writeKotlinPackagePartAnnotation(); for (JetDeclaration declaration : jetFile.getDeclarations()) { if (declaration instanceof JetNamedFunction || declaration instanceof JetProperty) { @@ -90,8 +90,8 @@ public class PackagePartCodegen extends MemberCodegen { v.done(); } - private void writeKotlinPackageFragmentAnnotation() { - AnnotationVisitor av = v.newAnnotation(asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.KOTLIN_PACKAGE_FRAGMENT), true); + private void writeKotlinPackagePartAnnotation() { + AnnotationVisitor av = v.newAnnotation(asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.KOTLIN_PACKAGE_PART), true); av.visit(JvmAnnotationNames.ABI_VERSION_FIELD_NAME, JvmAbi.VERSION); av.visitEnd(); } diff --git a/compiler/tests/org/jetbrains/jet/codegen/KotlinPackageFragmentAnnotationTest.java b/compiler/tests/org/jetbrains/jet/codegen/KotlinPackagePartAnnotationTest.java similarity index 75% rename from compiler/tests/org/jetbrains/jet/codegen/KotlinPackageFragmentAnnotationTest.java rename to compiler/tests/org/jetbrains/jet/codegen/KotlinPackagePartAnnotationTest.java index 588a188e2c0..708d24540f7 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/KotlinPackageFragmentAnnotationTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/KotlinPackagePartAnnotationTest.java @@ -27,7 +27,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName; import java.lang.annotation.Annotation; -public class KotlinPackageFragmentAnnotationTest extends CodegenTestCase { +public class KotlinPackagePartAnnotationTest extends CodegenTestCase { public static final FqName PACKAGE_NAME = new FqName("test"); @Override @@ -36,7 +36,7 @@ public class KotlinPackageFragmentAnnotationTest extends CodegenTestCase { createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY); } - public void testKotlinPackageFragmentIsWritten() throws Exception { + public void testKotlinPackagePartAnnotationIsWritten() throws Exception { loadText("package " + PACKAGE_NAME + "\n\nfun foo() = 42\n"); String facadeFileName = JvmClassName.byFqNameWithoutInnerClasses(PackageClassUtils.getPackageClassFqName(PACKAGE_NAME)).getInternalName() + ".class"; @@ -45,26 +45,26 @@ public class KotlinPackageFragmentAnnotationTest extends CodegenTestCase { String filePath = outputFile.getRelativePath(); if (!filePath.equals(facadeFileName)) { - // The file which is not a facade is a package fragment + // The file which is not a facade is a package part String fqName = filePath.substring(0, filePath.length() - ".class".length()).replace('/', '.'); - Class aClass = generateClass(fqName); + Class aClass = generateClass(fqName); - Class annotationClass = loadAnnotationClassQuietly(JvmAnnotationNames.KOTLIN_PACKAGE_FRAGMENT.asString()); + Class annotationClass = loadAnnotationClassQuietly(JvmAnnotationNames.KOTLIN_PACKAGE_PART.asString()); - assertTrue("No KotlinPackageFragment annotation on a package fragment", + assertTrue("No KotlinPackagePart annotation on a package part", aClass.isAnnotationPresent(annotationClass)); - Annotation kotlinPackageFragment = aClass.getAnnotation(annotationClass); + Annotation kotlinPackagePart = aClass.getAnnotation(annotationClass); - Integer version = (Integer) CodegenTestUtil.getAnnotationAttribute(kotlinPackageFragment, "abiVersion"); + Integer version = (Integer) CodegenTestUtil.getAnnotationAttribute(kotlinPackagePart, "abiVersion"); assertNotNull(version); - assertTrue("KotlinPackageFragment annotation is written with an unsupported format", + assertTrue("KotlinPackagePart annotation is written with an unsupported format", AbiVersionUtil.isAbiVersionCompatible(version)); return; } } - fail("No package fragment was found: " + outputFiles.asList()); + fail("No package part was found: " + outputFiles.asList()); } } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/AnnotationLoadingUtil.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/AnnotationLoadingUtil.java index c5294611947..eef41980a24 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/AnnotationLoadingUtil.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/AnnotationLoadingUtil.java @@ -18,7 +18,6 @@ package org.jetbrains.jet.lang.resolve.java; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; @@ -32,9 +31,12 @@ public final class AnnotationLoadingUtil { public static final FqName JETBRAINS_READONLY_ANNOTATION = new FqName("org.jetbrains.annotations.ReadOnly"); public static final FqName JL_CLASS_FQ_NAME = new FqName("java.lang.Class"); + @SuppressWarnings("deprecation") public static boolean isSpecialAnnotation(@NotNull FqName fqName) { return fqName.asString().startsWith("jet.runtime.typeinfo.") || fqName.equals(JETBRAINS_NOT_NULL_ANNOTATION) + || fqName.equals(JvmAnnotationNames.OLD_KOTLIN_CLASS) + || fqName.equals(JvmAnnotationNames.OLD_KOTLIN_PACKAGE) || fqName.equals(JvmAnnotationNames.KOTLIN_CLASS) || fqName.equals(JvmAnnotationNames.KOTLIN_PACKAGE); } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JvmAnnotationNames.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JvmAnnotationNames.java index 8445ee4cb59..cb6c936f9a1 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JvmAnnotationNames.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JvmAnnotationNames.java @@ -16,32 +16,29 @@ package org.jetbrains.jet.lang.resolve.java; -import jet.KotlinClass; -import jet.KotlinPackage; -import jet.KotlinPackageFragment; -import jet.KotlinTraitImpl; import org.jetbrains.jet.lang.resolve.name.FqName; -import static org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils.fqNameByClass; - public final class JvmAnnotationNames { - public static final FqName KOTLIN_CLASS = fqNameByClass(KotlinClass.class); - - public static final FqName KOTLIN_PACKAGE = fqNameByClass(KotlinPackage.class); - - public static final FqName KOTLIN_PACKAGE_FRAGMENT = fqNameByClass(KotlinPackageFragment.class); - - public static final FqName KOTLIN_TRAIT_IMPL = fqNameByClass(KotlinTraitImpl.class); + public static final FqName KOTLIN_CLASS = new FqName("kotlin.jvm.internal.KotlinClass"); + public static final FqName KOTLIN_PACKAGE = new FqName("kotlin.jvm.internal.KotlinPackage"); + public static final FqName KOTLIN_PACKAGE_PART = new FqName("kotlin.jvm.internal.KotlinPackagePart"); + public static final FqName KOTLIN_TRAIT_IMPL = new FqName("kotlin.jvm.internal.KotlinTraitImpl"); public static final String ABI_VERSION_FIELD_NAME = "abiVersion"; - public static final String DATA_FIELD_NAME = "data"; @Deprecated public static final FqName OLD_JET_CLASS_ANNOTATION = new FqName("jet.runtime.typeinfo.JetClass"); - @Deprecated public static final FqName OLD_JET_PACKAGE_CLASS_ANNOTATION = new FqName("jet.runtime.typeinfo.JetPackageClass"); + @Deprecated + public static final FqName OLD_KOTLIN_CLASS = new FqName("jet.KotlinClass"); + @Deprecated + public static final FqName OLD_KOTLIN_PACKAGE = new FqName("jet.KotlinPackage"); + @Deprecated + public static final FqName OLD_KOTLIN_PACKAGE_FRAGMENT = new FqName("jet.KotlinPackageFragment"); + @Deprecated + public static final FqName OLD_KOTLIN_TRAIT_IMPL = new FqName("jet.KotlinTraitImpl"); private JvmAnnotationNames() { } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/DescriptorResolverUtils.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/DescriptorResolverUtils.java index 6a4e8186855..eb578cb028a 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/DescriptorResolverUtils.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/DescriptorResolverUtils.java @@ -20,11 +20,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl; -import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.OverridingUtil; import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames; -import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassDescriptor; -import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor; import org.jetbrains.jet.lang.resolve.java.sam.SingleAbstractMethodUtils; import org.jetbrains.jet.lang.resolve.java.structure.*; import org.jetbrains.jet.lang.resolve.name.FqName; @@ -38,8 +35,6 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import java.util.*; -import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getFqNameSafe; - public final class DescriptorResolverUtils { public static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object"); @@ -49,7 +44,7 @@ public final class DescriptorResolverUtils { public static boolean isCompiledKotlinPackageClass(@NotNull JavaClass javaClass) { if (javaClass.getOriginKind() == JavaClass.OriginKind.COMPILED) { return javaClass.findAnnotation(JvmAnnotationNames.KOTLIN_PACKAGE) != null - || javaClass.findAnnotation(JvmAnnotationNames.KOTLIN_PACKAGE_FRAGMENT) != null; + || javaClass.findAnnotation(JvmAnnotationNames.KOTLIN_PACKAGE_PART) != null; } return false; } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/header/KotlinClassHeader.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/header/KotlinClassHeader.java index 86f36b370c6..b40f49ea5ef 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/header/KotlinClassHeader.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/header/KotlinClassHeader.java @@ -24,7 +24,7 @@ public class KotlinClassHeader { public enum Kind { CLASS, PACKAGE_FACADE, - PACKAGE_FRAGMENT, + PACKAGE_PART, TRAIT_IMPL, INCOMPATIBLE_ABI_VERSION } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java index 984d777facb..63b72816cb9 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java @@ -22,12 +22,10 @@ import org.jetbrains.jet.lang.resolve.java.AbiVersionUtil; import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames; import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.kotlin.KotlinJvmBinaryClass; +import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static org.jetbrains.jet.lang.resolve.java.AbiVersionUtil.isAbiVersionCompatible; import static org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames.*; @@ -41,12 +39,15 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor static { HEADER_KINDS.put(JvmClassName.byFqNameWithoutInnerClasses(KOTLIN_CLASS), CLASS); HEADER_KINDS.put(JvmClassName.byFqNameWithoutInnerClasses(KOTLIN_PACKAGE), PACKAGE_FACADE); - HEADER_KINDS.put(JvmClassName.byFqNameWithoutInnerClasses(KOTLIN_PACKAGE_FRAGMENT), PACKAGE_FRAGMENT); + HEADER_KINDS.put(JvmClassName.byFqNameWithoutInnerClasses(KOTLIN_PACKAGE_PART), PACKAGE_PART); HEADER_KINDS.put(JvmClassName.byFqNameWithoutInnerClasses(KOTLIN_TRAIT_IMPL), TRAIT_IMPL); - //noinspection deprecation - HEADER_KINDS.put(JvmClassName.byFqNameWithoutInnerClasses(OLD_JET_CLASS_ANNOTATION), INCOMPATIBLE_ABI_VERSION); - //noinspection deprecation - HEADER_KINDS.put(JvmClassName.byFqNameWithoutInnerClasses(OLD_JET_PACKAGE_CLASS_ANNOTATION), INCOMPATIBLE_ABI_VERSION); + + @SuppressWarnings("deprecation") + List incompatible = Arrays.asList(OLD_JET_CLASS_ANNOTATION, OLD_JET_PACKAGE_CLASS_ANNOTATION, OLD_KOTLIN_CLASS, + OLD_KOTLIN_PACKAGE, OLD_KOTLIN_PACKAGE_FRAGMENT, OLD_KOTLIN_TRAIT_IMPL); + for (FqName fqName : incompatible) { + HEADER_KINDS.put(JvmClassName.byFqNameWithoutInnerClasses(fqName), INCOMPATIBLE_ABI_VERSION); + } } private int version = AbiVersionUtil.INVALID_VERSION; @@ -99,7 +100,7 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor if (newKind == CLASS || newKind == PACKAGE_FACADE) { return kotlinClassOrPackageVisitor(annotationClassName); } - else if (newKind == PACKAGE_FRAGMENT || newKind == TRAIT_IMPL) { + else if (newKind == PACKAGE_PART || newKind == TRAIT_IMPL) { return annotationWithAbiVersionVisitor(annotationClassName); } diff --git a/core/runtime.jvm/src/jet/KotlinClass.java b/core/runtime.jvm/src/kotlin/jvm/internal/KotlinClass.java similarity index 96% rename from core/runtime.jvm/src/jet/KotlinClass.java rename to core/runtime.jvm/src/kotlin/jvm/internal/KotlinClass.java index 8780c1d77c6..2b954c18448 100644 --- a/core/runtime.jvm/src/jet/KotlinClass.java +++ b/core/runtime.jvm/src/kotlin/jvm/internal/KotlinClass.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package jet; +package kotlin.jvm.internal; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/core/runtime.jvm/src/jet/KotlinPackage.java b/core/runtime.jvm/src/kotlin/jvm/internal/KotlinPackage.java similarity index 96% rename from core/runtime.jvm/src/jet/KotlinPackage.java rename to core/runtime.jvm/src/kotlin/jvm/internal/KotlinPackage.java index c14818ffb5c..ff785e28ee5 100644 --- a/core/runtime.jvm/src/jet/KotlinPackage.java +++ b/core/runtime.jvm/src/kotlin/jvm/internal/KotlinPackage.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package jet; +package kotlin.jvm.internal; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/core/runtime.jvm/src/jet/KotlinPackageFragment.java b/core/runtime.jvm/src/kotlin/jvm/internal/KotlinPackagePart.java similarity index 91% rename from core/runtime.jvm/src/jet/KotlinPackageFragment.java rename to core/runtime.jvm/src/kotlin/jvm/internal/KotlinPackagePart.java index 0b5b0e17430..05b94f33dd4 100644 --- a/core/runtime.jvm/src/jet/KotlinPackageFragment.java +++ b/core/runtime.jvm/src/kotlin/jvm/internal/KotlinPackagePart.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package jet; +package kotlin.jvm.internal; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) -public @interface KotlinPackageFragment { +public @interface KotlinPackagePart { int abiVersion(); } diff --git a/core/runtime.jvm/src/jet/KotlinTraitImpl.java b/core/runtime.jvm/src/kotlin/jvm/internal/KotlinTraitImpl.java similarity index 96% rename from core/runtime.jvm/src/jet/KotlinTraitImpl.java rename to core/runtime.jvm/src/kotlin/jvm/internal/KotlinTraitImpl.java index 1cfe75cb242..d90c1ff154c 100644 --- a/core/runtime.jvm/src/jet/KotlinTraitImpl.java +++ b/core/runtime.jvm/src/kotlin/jvm/internal/KotlinTraitImpl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package jet; +package kotlin.jvm.internal; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/idea/src/org/jetbrains/jet/plugin/caches/JetFromJavaDescriptorHelper.java b/idea/src/org/jetbrains/jet/plugin/caches/JetFromJavaDescriptorHelper.java index e3ed6f9cd80..83558e3909a 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/JetFromJavaDescriptorHelper.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/JetFromJavaDescriptorHelper.java @@ -22,8 +22,6 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.java.stubs.index.JavaAnnotationIndex; import com.intellij.psi.search.GlobalSearchScope; -import jet.KotlinClass; -import jet.KotlinPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.descriptors.serialization.*; @@ -54,7 +52,7 @@ public class JetFromJavaDescriptorHelper { /* Will iterate through short name caches Kotlin packages from jar a class files will be collected from java cache Kotlin package classes from sources will be collected with JetShortNamesCache.getClassesByName */ - return getClassesByAnnotation(KotlinPackage.class.getSimpleName(), project, scope); + return getClassesByAnnotation("KotlinPackage", project, scope); } /** @@ -77,14 +75,11 @@ public class JetFromJavaDescriptorHelper { static Collection getCompiledClassesForTopLevelObjects(Project project, GlobalSearchScope scope) { Set jetObjectClasses = Sets.newHashSet(); - Collection classesByAnnotation = getClassesByAnnotation(KotlinClass.class.getSimpleName(), project, scope); + Collection classesByAnnotation = getClassesByAnnotation("KotlinClass", project, scope); for (PsiClass psiClass : classesByAnnotation) { ClassKind kind = getCompiledClassKind(psiClass); - if (kind == null) { - continue; - } - if (psiClass.getContainingClass() == null && kind == ClassKind.OBJECT) { + if (kind == ClassKind.OBJECT && psiClass.getContainingClass() == null) { jetObjectClasses.add(psiClass); } } @@ -174,7 +169,7 @@ public class JetFromJavaDescriptorHelper { boolean shouldBeExtension ) { Collection result = Sets.newHashSet(); - Collection packageClasses = getClassesByAnnotation(KotlinPackage.class.getSimpleName(), project, scope); + Collection packageClasses = getClassesByAnnotation("KotlinPackage", project, scope); for (PsiClass psiClass : packageClasses) { String qualifiedName = psiClass.getQualifiedName(); if (qualifiedName == null) { diff --git a/idea/src/org/jetbrains/jet/plugin/stubindex/builder/EmptyPackageFragmentClsStubBuilderFactory.java b/idea/src/org/jetbrains/jet/plugin/stubindex/builder/EmptyPackageFragmentClsStubBuilderFactory.java index b91928a8af4..843e10d88ae 100644 --- a/idea/src/org/jetbrains/jet/plugin/stubindex/builder/EmptyPackageFragmentClsStubBuilderFactory.java +++ b/idea/src/org/jetbrains/jet/plugin/stubindex/builder/EmptyPackageFragmentClsStubBuilderFactory.java @@ -46,7 +46,7 @@ public class EmptyPackageFragmentClsStubBuilderFactory extends ClsStubBuilderFac if (file.getName().contains(PackageClassUtils.PACKAGE_CLASS_NAME_SUFFIX + "-") && StdFileTypes.CLASS.getDefaultExtension().equals(file.getExtension())) { KotlinClassHeader header = new VirtualFileKotlinClass(LockBasedStorageManager.NO_LOCKS, file).getClassHeader(); - return header != null && header.getKind() == KotlinClassHeader.Kind.PACKAGE_FRAGMENT; + return header != null && header.getKind() == KotlinClassHeader.Kind.PACKAGE_PART; } return false; } diff --git a/idea/src/org/jetbrains/jet/plugin/versions/KotlinAbiVersionIndex.java b/idea/src/org/jetbrains/jet/plugin/versions/KotlinAbiVersionIndex.java index 8cff8817a95..0b635b49096 100644 --- a/idea/src/org/jetbrains/jet/plugin/versions/KotlinAbiVersionIndex.java +++ b/idea/src/org/jetbrains/jet/plugin/versions/KotlinAbiVersionIndex.java @@ -63,6 +63,8 @@ public class KotlinAbiVersionIndex extends ScalarIndexExtension { private final Set kotlinAnnotationsDesc = new ImmutableSet.Builder() .add(asmDescByFqNameWithoutInnerClasses(OLD_JET_CLASS_ANNOTATION)) .add(asmDescByFqNameWithoutInnerClasses(OLD_JET_PACKAGE_CLASS_ANNOTATION)) + .add(asmDescByFqNameWithoutInnerClasses(OLD_KOTLIN_CLASS)) + .add(asmDescByFqNameWithoutInnerClasses(OLD_KOTLIN_PACKAGE)) .add(asmDescByFqNameWithoutInnerClasses(KOTLIN_CLASS)) .add(asmDescByFqNameWithoutInnerClasses(KOTLIN_PACKAGE)) .build();