Annotations on object literals are now correctly resolved #KT-9320 Fixed

This commit is contained in:
Mikhail Glukhikh
2016-01-28 20:13:24 +03:00
parent a041414f35
commit 84100abd9e
10 changed files with 110 additions and 4 deletions
@@ -108,6 +108,16 @@ public abstract class AnnotationCodegen {
"Inconsistent target list for lambda annotation: " + applicableTargets + " on " + annotated;
continue;
}
if (annotated instanceof ClassDescriptor
&& !applicableTargets.contains(KotlinTarget.CLASS)
&& !applicableTargets.contains(KotlinTarget.ANNOTATION_CLASS)) {
ClassDescriptor classDescriptor = (ClassDescriptor) annotated;
if (classDescriptor.getVisibility() == Visibilities.LOCAL) {
assert applicableTargets.contains(KotlinTarget.EXPRESSION) :
"Inconsistent target list for object literal annotation: " + applicableTargets + " on " + annotated;
continue;
}
}
String descriptor = genAnnotation(annotation);
if (descriptor != null) {