KT-2730 AssertionError at org.jetbrains.jet.codegen.AnnotationCodegen.genAnnotations(AnnotationCodegen.java:86)
#KT-2730 Fixed
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user