Foo.class never yields null in Java annotation arguments
This commit is contained in:
@@ -8,7 +8,7 @@ public open class ClassObjectArrayInParam : java.lang.Object {
|
|||||||
public abstract fun value(): jet.Array<java.lang.Class<out jet.Any?>>
|
public abstract fun value(): jet.Array<java.lang.Class<out jet.Any?>>
|
||||||
}
|
}
|
||||||
|
|
||||||
test.ClassObjectArrayInParam.Anno(value = {test.ClassObjectArrayInParam?.class, test.ClassObjectArrayInParam.Nested?.class, jet.String?.class}: jet.Array<java.lang.Class<out jet.Any?>>) public open class Nested : java.lang.Object {
|
test.ClassObjectArrayInParam.Anno(value = {test.ClassObjectArrayInParam.class, test.ClassObjectArrayInParam.Nested.class, jet.String.class}: jet.Array<java.lang.Class<out jet.Any?>>) public open class Nested : java.lang.Object {
|
||||||
public constructor Nested()
|
public constructor Nested()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public open class ClassObjectInParam : java.lang.Object {
|
|||||||
public abstract fun value(): java.lang.Class<out jet.Any?>
|
public abstract fun value(): java.lang.Class<out jet.Any?>
|
||||||
}
|
}
|
||||||
|
|
||||||
test.ClassObjectInParam.Anno(value = test.ClassObjectInParam?.class: java.lang.Class<test.ClassObjectInParam?>) public open class Nested : java.lang.Object {
|
test.ClassObjectInParam.Anno(value = test.ClassObjectInParam.class: java.lang.Class<test.ClassObjectInParam>) public open class Nested : java.lang.Object {
|
||||||
public constructor Nested()
|
public constructor Nested()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -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.JetType;
|
||||||
import org.jetbrains.jet.lang.types.JetTypeImpl;
|
import org.jetbrains.jet.lang.types.JetTypeImpl;
|
||||||
import org.jetbrains.jet.lang.types.TypeProjectionImpl;
|
import org.jetbrains.jet.lang.types.TypeProjectionImpl;
|
||||||
|
import org.jetbrains.jet.lang.types.TypeUtils;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -147,7 +148,8 @@ public final class JavaAnnotationArgumentResolver {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private CompileTimeConstant<?> resolveFromJavaClassObjectType(@NotNull JavaType javaType) {
|
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);
|
ClassDescriptor jlClass = classResolver.resolveClass(JL_CLASS_FQ_NAME, IGNORE_KOTLIN_SOURCES);
|
||||||
if (jlClass == null) return null;
|
if (jlClass == null) return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user