[JVM] Make IR interpreter resilient to enhanced nullability.

Google uses jspecify annotations on core Java classes such
as `Boolean`. This trips up the IR interpreter for any use
of constants such as `java.lang.Boolean.TRUE`. The IR interpreter
trusts the enhanced nullability information and uses reflection
to try to load a field of primitive type instead of object type.

This change loads nullability enhanced fields with object type
in the IR interpreter.

^KT-62789 Fixed
diff --git a/compiler/ir/ir.interpreter/build.gradle.kts b/compiler/ir/ir.interpreter/build.gradle.kts
index db7fc1a..a0657d1 100644
--- a/compiler/ir/ir.interpreter/build.gradle.kts
+++ b/compiler/ir/ir.interpreter/build.gradle.kts
@@ -5,6 +5,7 @@
 
 dependencies {
     compileOnly(project(":compiler:ir.tree"))
+    compileOnly(project(":core:compiler.common.jvm"))
     compileOnly(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false }
 }
 
diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt
index 5437f0c..c828cbc 100644
--- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt
+++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt
@@ -15,6 +15,7 @@
 import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
 import org.jetbrains.kotlin.ir.types.*
 import org.jetbrains.kotlin.ir.util.*
+import org.jetbrains.kotlin.load.java.JvmAnnotationNames
 import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
 import java.lang.invoke.MethodHandle
 import java.lang.invoke.MethodHandles
@@ -176,7 +177,9 @@
 
         fun getStaticGetter(field: IrField): MethodHandle {
             val jvmClass = field.parentAsClass.defaultType.getClass(true)
-            val returnType = field.type.let { it.getClass(it.isNullable()) }
+            val getAsObjectType = field.type.isNullable() ||
+                    field.type.hasAnnotation(JvmAnnotationNames.ENHANCED_NULLABILITY_ANNOTATION)
+            val returnType = field.type.getClass(getAsObjectType)
             return MethodHandles.lookup().findStaticGetter(jvmClass, field.name.asString(), returnType)
         }