[FIR] Don't throw in FirIntegerConstantOperatorScope in restricted analysis mode

#KT-76396 Fixed
diff --git a/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerConstantOperator.kt b/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerConstantOperator.kt
new file mode 100644
index 0000000..b342e49
--- /dev/null
+++ b/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerConstantOperator.kt
@@ -0,0 +1,3 @@
+fun f<caret>oo(x: Int) {
+    1 * x
+}
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerConstantOperator.txt b/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerConstantOperator.txt
new file mode 100644
index 0000000..5d5bd1a
--- /dev/null
+++ b/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerConstantOperator.txt
@@ -0,0 +1,59 @@
+RAW_FIR:
+FILE: [ResolvedTo(RAW_FIR)] integerConstantOperator.kt
+    public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] x: Int): R|kotlin/Unit| { LAZY_BLOCK }
+
+IMPORTS:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] x: Int): R|kotlin/Unit| { LAZY_BLOCK }
+
+COMPILER_REQUIRED_ANNOTATIONS:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] x: Int): R|kotlin/Unit| { LAZY_BLOCK }
+
+COMPANION_GENERATION:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public? final? [ResolvedTo(COMPANION_GENERATION)] fun foo([ResolvedTo(COMPANION_GENERATION)] x: Int): R|kotlin/Unit| { LAZY_BLOCK }
+
+SUPER_TYPES:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public? final? [ResolvedTo(SUPER_TYPES)] fun foo([ResolvedTo(SUPER_TYPES)] x: Int): R|kotlin/Unit| { LAZY_BLOCK }
+
+TYPES:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public? final? [ResolvedTo(TYPES)] fun foo([ResolvedTo(TYPES)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| { LAZY_BLOCK }
+
+STATUS:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| { LAZY_BLOCK }
+
+EXPECT_ACTUAL_MATCHING:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo([ResolvedTo(EXPECT_ACTUAL_MATCHING)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| { LAZY_BLOCK }
+
+CONTRACTS:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public final [ResolvedTo(CONTRACTS)] fun foo([ResolvedTo(CONTRACTS)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| { LAZY_BLOCK }
+
+IMPLICIT_TYPES_BODY_RESOLVE:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| { LAZY_BLOCK }
+
+CONSTANT_EVALUATION:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public final [ResolvedTo(CONSTANT_EVALUATION)] fun foo([ResolvedTo(CONSTANT_EVALUATION)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| { LAZY_BLOCK }
+
+ANNOTATION_ARGUMENTS:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun foo([ResolvedTo(ANNOTATION_ARGUMENTS)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| { LAZY_BLOCK }
+
+BODY_RESOLVE:
+FILE: [ResolvedTo(IMPORTS)] integerConstantOperator.kt
+    public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| {
+        IntegerLiteral(1).<Unresolved name: times (*)>#(R|<local>/x|)
+    }
+
+FILE RAW TO BODY:
+FILE: [ResolvedTo(BODY_RESOLVE)] integerConstantOperator.kt
+    public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] x: <ERROR TYPE REF: Symbol not found for Int>): R|kotlin/Unit| {
+        IntegerLiteral(1).<Unresolved name: times (*)>#(R|<local>/x|)
+    }
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java
index 42ab88f..1a5d809 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java
@@ -1598,6 +1598,12 @@
     }
 
     @Test
+    @TestMetadata("integerConstantOperator.kt")
+    public void testIntegerConstantOperator() {
+      runTest("analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerConstantOperator.kt");
+    }
+
+    @Test
     @TestMetadata("integerLiteralCall.kt")
     public void testIntegerLiteralCall() {
       runTest("analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerLiteralCall.kt");
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java
index 5873ed3..9191020 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java
@@ -1598,6 +1598,12 @@
     }
 
     @Test
+    @TestMetadata("integerConstantOperator.kt")
+    public void testIntegerConstantOperator() {
+      runTest("analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerConstantOperator.kt");
+    }
+
+    @Test
     @TestMetadata("integerLiteralCall.kt")
     public void testIntegerLiteralCall() {
       runTest("analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerLiteralCall.kt");
diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerConstantOperatorScope.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerConstantOperatorScope.kt
index 6277176..fa14a72 100644
--- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerConstantOperatorScope.kt
+++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerConstantOperatorScope.kt
@@ -45,7 +45,7 @@
         ) ?: Empty
     }
 
-    private val mappedFunctions = mutableMapOf<Name, FirNamedFunctionSymbol>()
+    private val mappedFunctions = mutableMapOf<Name, FirNamedFunctionSymbol?>()
 
     override fun processFunctionsByName(name: Name, processor: (FirNamedFunctionSymbol) -> Unit) {
         // Constant conversion for those unary operators works only for signed integers
@@ -57,9 +57,9 @@
         val requiresUnsignedOperand = isUnsigned && name !in binaryOperatorsWithSignedArgument
         val wrappedSymbol = mappedFunctions.getOrPut(name) {
             val allFunctions = baseScope.getFunctions(name)
-            val functionSymbol = allFunctions.first {
+            val functionSymbol = allFunctions.firstOrNull {
                 // unary operators have only one overload
-                if (isUnaryOperator) return@first true
+                if (isUnaryOperator) return@firstOrNull true
 
                 val coneType = it.fir.valueParameters.first().returnTypeRef.coneType
                 if (requiresUnsignedOperand) {
@@ -68,9 +68,9 @@
                     coneType.isInt
                 }
             }
-            wrapIntOperator(functionSymbol)
+            functionSymbol?.let { wrapIntOperator(it) }
         }
-        processor(wrappedSymbol)
+        wrappedSymbol?.let { processor(it) }
         baseScope.processFunctionsByName(name, processor)
     }