-
Notifications
You must be signed in to change notification settings - Fork 443
Labels
bugfeedback: GoogleAn issue/PR submitted by colleagues at Google, most likely related to the Android API reference docsAn issue/PR submitted by colleagues at Google, most likely related to the Android API reference docs
Description
Describe the bug
Parsing java has failures in hashing
To Reproduce
https://cs.android.com/androidx/platform/tools/dokka-devsite-plugin/+/master:testData/fragment/source/ Using the source of the Android Jetpack Fragment library we often (but not always) see two kinds of errors in hashing from findVirtualFileForTopLevelClass
Stacktrace 1
Index 88 out of bounds for length 79
java.lang.ArrayIndexOutOfBoundsException: Index 88 out of bounds for length 79
at gnu.trove.THashMap.rehash(THashMap.java:350)
at gnu.trove.THash.postInsertHook(THash.java:286)
at gnu.trove.THashMap.put(THashMap.java:174)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findVirtualFileForTopLevelClass(KotlinCliJavaFileManagerImpl.kt:306)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.access$findVirtualFileForTopLevelClass(KotlinCliJavaFileManagerImpl.kt:48)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findPsiClass$1.invoke(KotlinCliJavaFileManagerImpl.kt:70)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findPsiClass$1.invoke(KotlinCliJavaFileManagerImpl.kt:48)
at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:101)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findPsiClass(KotlinCliJavaFileManagerImpl.kt:69)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClass(KotlinCliJavaFileManagerImpl.kt:135)
at com.intellij.psi.impl.PsiElementFinderImpl.findClass(PsiElementFinderImpl.java:44)
at com.intellij.psi.impl.JavaPsiFacadeImpl.doFindClass(JavaPsiFacadeImpl.java:110)
at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:87)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.tryClassResult(PsiJavaCodeReferenceElementImpl.java:416)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:397)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:375)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:200)
at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:113)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:199)
at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:797)
at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:788)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.multiResolve(PsiJavaCodeReferenceElementImpl.java:434)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.advancedResolve(PsiJavaCodeReferenceElementImpl.java:427)
at com.intellij.psi.impl.source.PsiClassReferenceType.resolveGenerics(PsiClassReferenceType.java:179)
at com.intellij.psi.impl.source.PsiClassReferenceType.resolve(PsiClassReferenceType.java:124)
at com.intellij.psi.util.TypeConversionUtil$2.visitClassType(TypeConversionUtil.java:1267)
at com.intellij.psi.util.TypeConversionUtil$2.visitClassType(TypeConversionUtil.java:1258)
at com.intellij.psi.PsiClassType.accept(PsiClassType.java:239)
at com.intellij.psi.util.TypeConversionUtil.erasure(TypeConversionUtil.java:1258)
at com.intellij.psi.util.MethodSignatureUtil.calcErasedParameterTypes(MethodSignatureUtil.java:91)
at com.intellij.psi.util.MethodSignatureBase.getErasedParameterTypes(MethodSignatureBase.java:80)
at com.intellij.psi.util.MethodSignatureBase.hashCode(MethodSignatureBase.java:95)
at com.intellij.psi.util.MethodSignatureUtil$2.computeHashCode(MethodSignatureUtil.java:52)
at com.intellij.psi.util.MethodSignatureUtil$2.computeHashCode(MethodSignatureUtil.java:49)
at gnu.trove.TObjectHash.insertionIndex(TObjectHash.java:224)
at gnu.trove.THashMap.put(THashMap.java:164)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.buildMethodHierarchy(PsiSuperMethodImplUtil.java:187)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.lambda$null$1(PsiSuperMethodImplUtil.java:36)
at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:176)
at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.lambda$null$3(PsiSuperMethodImplUtil.java:370)
at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:176)
at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.getHierarchicalMethodSignature(PsiSuperMethodImplUtil.java:379)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.getHierarchicalMethodSignature(PsiSuperMethodImplUtil.java:359)
at com.intellij.psi.impl.source.javadoc.PsiDocMethodOrFieldRef.findMethods(PsiDocMethodOrFieldRef.java:211)
at com.intellij.psi.impl.source.javadoc.PsiDocMethodOrFieldRef.getReferenceInScope(PsiDocMethodOrFieldRef.java:105)
at com.intellij.psi.impl.source.javadoc.PsiDocMethodOrFieldRef.getReference(PsiDocMethodOrFieldRef.java:59)
at org.jetbrains.dokka.base.translators.psi.JavadocParser$Parse.toDocumentationLinkString(JavadocParser.kt:169)
at org.jetbrains.dokka.base.translators.psi.JavadocParser$Parse.convertInlineDocTag(JavadocParser.kt:180)
at org.jetbrains.dokka.base.translators.psi.JavadocParser$Parse.stringify(JavadocParser.kt:153)
at org.jetbrains.dokka.base.translators.psi.JavadocParser$Parse.invoke(JavadocParser.kt:231)
at org.jetbrains.dokka.base.translators.psi.JavadocParser.convertJavadocElements(JavadocParser.kt:250)
at org.jetbrains.dokka.base.translators.psi.JavadocParser.convertJavadocElements$default(JavadocParser.kt:249)
at org.jetbrains.dokka.base.translators.psi.JavadocParser.getDescription(JavadocParser.kt:143)
at org.jetbrains.dokka.base.translators.psi.JavadocParser.parseDocumentation(JavadocParser.kt:35)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parseClasslike$2.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:192)
(Coroutine boundary)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parsePackage$2$invokeSuspend$$inlined$parallelMap$1$1.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:19)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parsePackage$2.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:575)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$invoke$2$invokeSuspend$$inlined$parallelMap$2$1.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:19)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$invoke$2.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:618)
at org.jetbrains.dokka.DokkaGenerator$translateSources$$inlined$parallelMap$1$1.invokeSuspend(DokkaGenerator.kt:19)
at org.jetbrains.dokka.DokkaGenerator$createDocumentationModels$1$invokeSuspend$$inlined$parallelMap$1$1.invokeSuspend(DokkaGenerator.kt:19)
at org.jetbrains.dokka.DokkaGenerator$createDocumentationModels$1.invokeSuspend(DokkaGenerator.kt:194)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 88 out of bounds for length 79
at gnu.trove.THashMap.rehash(THashMap.java:350)
at gnu.trove.THash.postInsertHook(THash.java:286)
at gnu.trove.THashMap.put(THashMap.java:174)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findVirtualFileForTopLevelClass(KotlinCliJavaFileManagerImpl.kt:306)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.access$findVirtualFileForTopLevelClass(KotlinCliJavaFileManagerImpl.kt:48)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findPsiClass$1.invoke(KotlinCliJavaFileManagerImpl.kt:70)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findPsiClass$1.invoke(KotlinCliJavaFileManagerImpl.kt:48)
at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:101)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findPsiClass(KotlinCliJavaFileManagerImpl.kt:69)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClass(KotlinCliJavaFileManagerImpl.kt:135)
at com.intellij.psi.impl.PsiElementFinderImpl.findClass(PsiElementFinderImpl.java:44)
at com.intellij.psi.impl.JavaPsiFacadeImpl.doFindClass(JavaPsiFacadeImpl.java:110)
at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:87)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.tryClassResult(PsiJavaCodeReferenceElementImpl.java:416)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:397)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:375)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:200)
at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:113)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:199)
at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:797)
at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:788)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.multiResolve(PsiJavaCodeReferenceElementImpl.java:434)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.advancedResolve(PsiJavaCodeReferenceElementImpl.java:427)
at com.intellij.psi.impl.source.PsiClassReferenceType.resolveGenerics(PsiClassReferenceType.java:179)
at com.intellij.psi.impl.source.PsiClassReferenceType.resolve(PsiClassReferenceType.java:124)
at com.intellij.psi.util.TypeConversionUtil$2.visitClassType(TypeConversionUtil.java:1267)
at com.intellij.psi.util.TypeConversionUtil$2.visitClassType(TypeConversionUtil.java:1258)
at com.intellij.psi.PsiClassType.accept(PsiClassType.java:239)
at com.intellij.psi.util.TypeConversionUtil.erasure(TypeConversionUtil.java:1258)
at com.intellij.psi.util.MethodSignatureUtil.calcErasedParameterTypes(MethodSignatureUtil.java:91)
at com.intellij.psi.util.MethodSignatureBase.getErasedParameterTypes(MethodSignatureBase.java:80)
at com.intellij.psi.util.MethodSignatureBase.hashCode(MethodSignatureBase.java:95)
at com.intellij.psi.util.MethodSignatureUtil$2.computeHashCode(MethodSignatureUtil.java:52)
at com.intellij.psi.util.MethodSignatureUtil$2.computeHashCode(MethodSignatureUtil.java:49)
at gnu.trove.TObjectHash.insertionIndex(TObjectHash.java:224)
at gnu.trove.THashMap.put(THashMap.java:164)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.buildMethodHierarchy(PsiSuperMethodImplUtil.java:187)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.lambda$null$1(PsiSuperMethodImplUtil.java:36)
at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:176)
at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.lambda$null$3(PsiSuperMethodImplUtil.java:370)
at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:176)
at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.getHierarchicalMethodSignature(PsiSuperMethodImplUtil.java:379)
at com.intellij.psi.impl.PsiSuperMethodImplUtil.getHierarchicalMethodSignature(PsiSuperMethodImplUtil.java:359)
at com.intellij.psi.impl.source.javadoc.PsiDocMethodOrFieldRef.findMethods(PsiDocMethodOrFieldRef.java:211)
at com.intellij.psi.impl.source.javadoc.PsiDocMethodOrFieldRef.getReferenceInScope(PsiDocMethodOrFieldRef.java:105)
at com.intellij.psi.impl.source.javadoc.PsiDocMethodOrFieldRef.getReference(PsiDocMethodOrFieldRef.java:59)
at org.jetbrains.dokka.base.translators.psi.JavadocParser$Parse.toDocumentationLinkString(JavadocParser.kt:169)
at org.jetbrains.dokka.base.translators.psi.JavadocParser$Parse.convertInlineDocTag(JavadocParser.kt:180)
at org.jetbrains.dokka.base.translators.psi.JavadocParser$Parse.stringify(JavadocParser.kt:153)
at org.jetbrains.dokka.base.translators.psi.JavadocParser$Parse.invoke(JavadocParser.kt:231)
at org.jetbrains.dokka.base.translators.psi.JavadocParser.convertJavadocElements(JavadocParser.kt:250)
at org.jetbrains.dokka.base.translators.psi.JavadocParser.convertJavadocElements$default(JavadocParser.kt:249)
at org.jetbrains.dokka.base.translators.psi.JavadocParser.getDescription(JavadocParser.kt:143)
at org.jetbrains.dokka.base.translators.psi.JavadocParser.parseDocumentation(JavadocParser.kt:35)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parseClasslike$2.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:192)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:113)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Stacktrace 2
java.lang.IllegalArgumentException: Equal objects must have equal hashcodes. During rehashing, Trove discovered that the following two objects claim to be equal (as in java.lang.Object.equals() or TObjectHashingStrategy.equals()) but their hashCodes (or those calculated by your TObjectHashingStrategy) are not equal.This violates the general contract of java.lang.Object.hashCode(). See bullet point two in that method's documentation. object #1 =android (class org.jetbrains.kotlin.name.FqName), hashCode=-861391249; object #2 =android (class org.jetbrains.kotlin.name.FqName), hashCode=-861391249
at gnu.trove.TObjectHash.throwObjectContractViolation(TObjectHash.java:331)
at gnu.trove.THashMap.rehash(THashMap.java:347)
at gnu.trove.THash.postInsertHook(THash.java:286)
at gnu.trove.THashMap.put(THashMap.java:174)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findVirtualFileForTopLevelClass(KotlinCliJavaFileManagerImpl.kt:306)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.access$findVirtualFileForTopLevelClass(KotlinCliJavaFileManagerImpl.kt:48)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findPsiClass$1.invoke(KotlinCliJavaFileManagerImpl.kt:70)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findPsiClass$1.invoke(KotlinCliJavaFileManagerImpl.kt:48)
at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:101)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findPsiClass(KotlinCliJavaFileManagerImpl.kt:69)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClass(KotlinCliJavaFileManagerImpl.kt:135)
at com.intellij.psi.impl.PsiElementFinderImpl.findClass(PsiElementFinderImpl.java:44)
at com.intellij.psi.impl.JavaPsiFacadeImpl.doFindClass(JavaPsiFacadeImpl.java:110)
at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:87)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.tryClassResult(PsiJavaCodeReferenceElementImpl.java:416)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:397)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:375)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:200)
at com.intellij.psi.impl.source.resolve.ResolveCache$$Lambda$185/214444723.compute(Unknown Source)
at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:113)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:199)
at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:797)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.getCanonicalText(PsiJavaCodeReferenceElementImpl.java:297)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.getCanonicalText(PsiJavaCodeReferenceElementImpl.java:287)
at com.intellij.psi.impl.source.PsiClassReferenceType.getText(PsiClassReferenceType.java:245)
at com.intellij.psi.impl.source.PsiClassReferenceType.getCanonicalText(PsiClassReferenceType.java:231)
at com.intellij.psi.PsiClassType$Stub.getCanonicalText(PsiClassType.java:358)
at org.jetbrains.dokka.analysis.CallableFactoryKt.from(CallableFactory.kt:22)
at org.jetbrains.dokka.analysis.DRIFactoryKt.from(DRIFactory.kt:33)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser.parseFunction(DefaultPsiToDocumentableTranslator.kt:333)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser.parseFunction$default(DefaultPsiToDocumentableTranslator.kt:331)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parseClasslike$2$invokeSuspend$$inlined$with$lambda$3$1$1.invokeSuspend(parallelCollectionOperations.kt:19)
at ???(Coroutine boundary.?(?)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parsePackage$2$invokeSuspend$$inlined$parallelMap$1$1.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:19)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parsePackage$2.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:575)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$invoke$2$invokeSuspend$$inlined$parallelMap$2$1.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:19)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$invoke$2.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:618)
at org.jetbrains.dokka.DokkaGenerator$translateSources$$inlined$parallelMap$1$1.invokeSuspend(DokkaGenerator.kt:19)
at org.jetbrains.dokka.DokkaGenerator$createDocumentationModels$1$invokeSuspend$$inlined$parallelMap$1$1.invokeSuspend(DokkaGenerator.kt:19)
at org.jetbrains.dokka.DokkaGenerator$createDocumentationModels$1.invokeSuspend(DokkaGenerator.kt:194)
Caused by: java.lang.IllegalArgumentException: Equal objects must have equal hashcodes. During rehashing, Trove discovered that the following two objects claim to be equal (as in java.lang.Object.equals() or TObjectHashingStrategy.equals()) but their hashCodes (or those calculated by your TObjectHashingStrategy) are not equal.This violates the general contract of java.lang.Object.hashCode(). See bullet point two in that method's documentation. object #1 =android (class org.jetbrains.kotlin.name.FqName), hashCode=-861391249; object #2 =android (class org.jetbrains.kotlin.name.FqName), hashCode=-861391249
at gnu.trove.TObjectHash.throwObjectContractViolation(TObjectHash.java:331)
at gnu.trove.THashMap.rehash(THashMap.java:347)
at gnu.trove.THash.postInsertHook(THash.java:286)
at gnu.trove.THashMap.put(THashMap.java:174)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findVirtualFileForTopLevelClass(KotlinCliJavaFileManagerImpl.kt:306)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.access$findVirtualFileForTopLevelClass(KotlinCliJavaFileManagerImpl.kt:48)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findPsiClass$1.invoke(KotlinCliJavaFileManagerImpl.kt:70)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findPsiClass$1.invoke(KotlinCliJavaFileManagerImpl.kt:48)
at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:101)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findPsiClass(KotlinCliJavaFileManagerImpl.kt:69)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClass(KotlinCliJavaFileManagerImpl.kt:135)
at com.intellij.psi.impl.PsiElementFinderImpl.findClass(PsiElementFinderImpl.java:44)
at com.intellij.psi.impl.JavaPsiFacadeImpl.doFindClass(JavaPsiFacadeImpl.java:110)
at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:87)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.tryClassResult(PsiJavaCodeReferenceElementImpl.java:416)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:397)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:375)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:200)
at com.intellij.psi.impl.source.resolve.ResolveCache$$Lambda$185/214444723.compute(Unknown Source)
at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:113)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:199)
at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:797)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.getCanonicalText(PsiJavaCodeReferenceElementImpl.java:297)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.getCanonicalText(PsiJavaCodeReferenceElementImpl.java:287)
at com.intellij.psi.impl.source.PsiClassReferenceType.getText(PsiClassReferenceType.java:245)
at com.intellij.psi.impl.source.PsiClassReferenceType.getCanonicalText(PsiClassReferenceType.java:231)
at com.intellij.psi.PsiClassType$Stub.getCanonicalText(PsiClassType.java:358)
at org.jetbrains.dokka.analysis.CallableFactoryKt.from(CallableFactory.kt:22)
at org.jetbrains.dokka.analysis.DRIFactoryKt.from(DRIFactory.kt:33)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser.parseFunction(DefaultPsiToDocumentableTranslator.kt:333)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser.parseFunction$default(DefaultPsiToDocumentableTranslator.kt:331)
at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parseClasslike$2$invokeSuspend$$inlined$with$lambda$3$1$1.invokeSuspend(parallelCollectionOperations.kt:19)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Installation
- Operating system: macOS/Windows/Linux
- Build tool: CLI
- Dokka version: 1.4.10.2-dev-19
jschneider, gnarea and jbartok
Metadata
Metadata
Assignees
Labels
bugfeedback: GoogleAn issue/PR submitted by colleagues at Google, most likely related to the Android API reference docsAn issue/PR submitted by colleagues at Google, most likely related to the Android API reference docs