diff --git a/compiler/testData/loadJava/compiledJava/annotations/ClassObjectArrayInParam.txt b/compiler/testData/loadJava/compiledJava/annotations/ClassObjectArrayInParam.txt index 119797bd856..82307175737 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/ClassObjectArrayInParam.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/ClassObjectArrayInParam.txt @@ -8,7 +8,7 @@ public open class ClassObjectArrayInParam : java.lang.Object { public abstract fun value(): jet.Array> } - test.ClassObjectArrayInParam.Anno(value = {test.ClassObjectArrayInParam?.class, test.ClassObjectArrayInParam.Nested?.class, jet.String?.class}: jet.Array>) public open class Nested : java.lang.Object { + test.ClassObjectArrayInParam.Anno(value = {test.ClassObjectArrayInParam.class, test.ClassObjectArrayInParam.Nested.class, jet.String.class}: jet.Array>) public open class Nested : java.lang.Object { public constructor Nested() } } diff --git a/compiler/testData/loadJava/compiledJava/annotations/ClassObjectInParam.txt b/compiler/testData/loadJava/compiledJava/annotations/ClassObjectInParam.txt index 594c0460ef1..69a8a6de9da 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/ClassObjectInParam.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/ClassObjectInParam.txt @@ -8,7 +8,7 @@ public open class ClassObjectInParam : java.lang.Object { public abstract fun value(): java.lang.Class } - test.ClassObjectInParam.Anno(value = test.ClassObjectInParam?.class: java.lang.Class) public open class Nested : java.lang.Object { + test.ClassObjectInParam.Anno(value = test.ClassObjectInParam.class: java.lang.Class) public open class Nested : java.lang.Object { public constructor Nested() } } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaAnnotationArgumentResolver.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaAnnotationArgumentResolver.java index fd49715479f..2281cfb66f6 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaAnnotationArgumentResolver.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaAnnotationArgumentResolver.java @@ -30,6 +30,7 @@ import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.JetTypeImpl; import org.jetbrains.jet.lang.types.TypeProjectionImpl; +import org.jetbrains.jet.lang.types.TypeUtils; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import javax.inject.Inject; @@ -147,7 +148,8 @@ public final class JavaAnnotationArgumentResolver { @Nullable private CompileTimeConstant resolveFromJavaClassObjectType(@NotNull JavaType javaType) { - JetType type = typeTransformer.transformToType(javaType, TypeVariableResolver.EMPTY); + // Foo.class is never nullable + JetType type = TypeUtils.makeNotNullable(typeTransformer.transformToType(javaType, TypeVariableResolver.EMPTY)); ClassDescriptor jlClass = classResolver.resolveClass(JL_CLASS_FQ_NAME, IGNORE_KOTLIN_SOURCES); if (jlClass == null) return null;