KT-3469 AssertionError: Couldn't find super type for super function

Class descriptor for Java class was recreated in KotlinSignatureInJavaMarkerProvider.

 #KT-3469 fixed
This commit is contained in:
Evgeny Gerashchenko
2013-04-03 15:04:32 +04:00
parent 8c45d50a86
commit c4f2740074
3 changed files with 64 additions and 2 deletions
@@ -166,13 +166,19 @@ public final class JavaClassResolver {
return doResolveClass(qualifiedName, tasks);
}
@Nullable
private ClassDescriptor doResolveClass(@NotNull FqName qualifiedName, @NotNull PostponedTasks tasks) {
PsiClass psiClass = psiClassFinder.findPsiClass(qualifiedName, PsiClassFinder.RuntimeClassesHandleMode.THROW);
if (psiClass == null) {
cacheNegativeValue(javaClassToKotlinFqName(qualifiedName));
return null;
}
// Class may have been resolved previously by different Java resolver instance, and we are reusing its trace
ClassDescriptor alreadyResolved = trace.get(BindingContext.CLASS, psiClass);
if (alreadyResolved != null) {
return alreadyResolved;
}
return createJavaClassDescriptor(qualifiedName, psiClass, tasks);
}