diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index f025880f3a6..9716a73520c 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -275,6 +275,8 @@ public class JavaDescriptorResolver { throw new IllegalStateException(psiClass.getQualifiedName()); } + checkPsiClassIsNotJet(psiClass); + String name = psiClass.getName(); ResolverBinaryClassData classData = new ResolverBinaryClassData(); classDescriptorCache.put(psiClass.getQualifiedName(), classData); @@ -412,6 +414,12 @@ public class JavaDescriptorResolver { return classData; } + private void checkPsiClassIsNotJet(PsiClass psiClass) { + if (psiClass instanceof JetJavaMirrorMarker) { + throw new IllegalStateException("trying to resolve fake jet PsiClass as regular PsiClass"); + } + } + /** * TODO * @see #createJavaNamespaceDescriptor(com.intellij.psi.PsiClass) @@ -819,6 +827,9 @@ public class JavaDescriptorResolver { * @see #createClassObjectDescriptor(org.jetbrains.jet.lang.descriptors.ClassDescriptor, com.intellij.psi.PsiClass) */ private ResolverNamespaceData createJavaNamespaceDescriptor(@NotNull final PsiClass psiClass) { + + checkPsiClassIsNotJet(psiClass); + ResolverNamespaceData namespaceData = new ResolverNamespaceData(); namespaceData.namespaceDescriptor = new JavaNamespaceDescriptor( resolveParentDescriptor(psiClass),