KT-2730 AssertionError at org.jetbrains.jet.codegen.AnnotationCodegen.genAnnotations(AnnotationCodegen.java:86)

#KT-2730 Fixed
This commit is contained in:
Andrey Breslav
2012-09-06 15:30:39 +04:00
parent 1441f742bb
commit fc90c775e9
4 changed files with 17 additions and 2 deletions
@@ -83,10 +83,10 @@ public abstract class AnnotationCodegen {
for (JetAnnotationEntry annotationEntry : annotationEntries) {
ResolvedCall<? extends CallableDescriptor> resolvedCall =
bindingContext.get(BindingContext.RESOLVED_CALL, annotationEntry.getCalleeExpression());
assert resolvedCall != null;
if (resolvedCall == null) continue; // Skipping annotations if they are not resolved. Needed for JetLightClass generation
AnnotationDescriptor annotationDescriptor = bindingContext.get(BindingContext.ANNOTATION, annotationEntry);
assert annotationDescriptor != null;
if (annotationDescriptor == null) continue; // Skipping annotations if they are not resolved. Needed for JetLightClass generation
JetType type = annotationDescriptor.getType();
genAnnotation(resolvedCall, type);
@@ -0,0 +1 @@
public class Client extends Foo {}
@@ -0,0 +1,3 @@
open class <caret>Foo {
vv open val foo = 1
}
@@ -16,6 +16,7 @@
package org.jetbrains.jet.findUsages;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiField;
import com.intellij.psi.PsiStatement;
import com.intellij.psi.util.PsiTreeUtil;
@@ -56,6 +57,16 @@ public class JetFindUsagesTest extends LightCodeInsightFixtureTestCase {
assertEquals("private Server myServer;", field.getText());
}
public void testFindUsagesUnresolvedAnnotation() {
myFixture.configureByFiles("unresolvedAnnotation/Server.kt", "unresolvedAnnotation/Client.java");
JetClass cls = PsiTreeUtil.getParentOfType(myFixture.getElementAtCaret(), JetClass.class, false);
final Collection<UsageInfo> usages = myFixture.findUsages(cls);
assertEquals(1, usages.size());
UsageInfo first = usages.iterator().next();
final PsiClass psiCLass = PsiTreeUtil.getParentOfType(first.getElement(), PsiClass.class);
assertEquals("public class Client extends Foo {}", psiCLass.getText());
}
public void testFindMethodUsages() {
myFixture.configureByFiles("findMethodUsages/Server.kt", "findMethodUsages/Client.java");
JetFunction function = PsiTreeUtil.getParentOfType(myFixture.getElementAtCaret(), JetFunction.class, false);