Don't create flexible types for ".class" expressions in annotation arguments

This commit is contained in:
Andrey Breslav
2014-08-10 21:58:25 +04:00
parent c699fa96d9
commit 2529bb24d1
2 changed files with 5 additions and 2 deletions
@@ -153,7 +153,10 @@ class LazyJavaAnnotationDescriptor(
private fun resolveFromJavaClassObjectType(javaType: JavaType): CompileTimeConstant<*>? {
// Class type is never nullable in 'Foo.class' in Java
val `type` = TypeUtils.makeNotNullable(c.typeResolver.transformJavaType(javaType, TypeUsage.MEMBER_SIGNATURE_INVARIANT.toAttributes()))
val `type` = TypeUtils.makeNotNullable(c.typeResolver.transformJavaType(
javaType,
TypeUsage.MEMBER_SIGNATURE_INVARIANT.toAttributes(allowFlexible = false))
)
val jlClass = c.packageFragmentProvider.module.resolveTopLevelClass(FqName("java.lang.Class"))
if (jlClass == null) return null
@@ -37,7 +37,7 @@ import org.jetbrains.jet.lang.resolve.java.descriptor.JavaConstructorDescriptor
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils
import org.jetbrains.jet.lang.types.JetType
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaMemberScope.MethodSignatureData
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver.PLATFORM_TYPES
import org.jetbrains.jet.lang.resolve.java.PLATFORM_TYPES
public class LazyJavaClassMemberScope(
c: LazyJavaResolverContextWithTypes,