MohamedRejeb / Calf

Calf is a library that allows you to easily create adaptive UIs and access platform specific APIs with Compose Multiplatform (Adaptive UI, File Picker, WebView, Permissions...).
https://mohamedrejeb.github.io/Calf/
Apache License 2.0
869 stars 38 forks source link

Building failing when using file picker on iOS #137

Closed H4kt closed 1 month ago

H4kt commented 1 month ago

Env

MacOS 14.5 XCode 15.3 Kotlin 2.0.0 calf-filepicker 0.5.2

Build output


Showing Recent Issues
Inside: FILE fqName:<root> fileName:/Users/h4kt/Desktop/RepoductionSample/composeApp/src/commonMain/kotlin/App.kt

@Composable

private fun App$lambda$6($coroutineScope: CoroutineScope, $platformContext: PlatformContext, $pickedFilePath$delegate: MutableState<String?>, /* var */ $composer: Composer?, $changed: Int) {

  var $composer: Composer? = $composer

  when {

    when {

      areEqualByValue(first = $changed.and(other = 11).reinterpret<Int, Int>(), second = 2.reinterpret<Int, Int>()).not() -> true

      true -> $composer.<get-skipping>().not()

    } -> { // BLOCK

      val filePickerLauncher: FilePickerLauncher = rememberFilePickerLauncher(type = <get-$instance>(), selectionMode = // COMPOSITE {

      null

      // }, onResult = { // BLOCK

        // COMPOSITE {

        // }

        $App$lambda$6$lambda$4$FUNCTION_REFERENCE$5($coroutineScope = $coroutineScope, $platformContext = $platformContext, $pickedFilePath$delegate = $pickedFilePath$delegate)

      }, $composer = $composer, $changed = #com_mohamedrejeb_calf_picker_FilePickerFileType_Image$stable, $default = 2)

      { // RETURNABLE BLOCK

        { // INLINED FUNCTION BLOCK

          // COMPOSITE {

          val modifier: Modifier? = { // BLOCK

            <get-$companion>().fillMaxSize$default(fraction = // COMPOSITE {

            0.0F.reinterpret<Float, Float>()

            // }, $mask0 = 1)

          }

          val verticalArrangement: Vertical? = { // BLOCK

            <get-$instance>().<get-Center>()

          }

          val horizontalAlignment: Horizontal? = { // BLOCK

            <get-$companion>().<get-CenterHorizontally>()

          }

          val $composer: Composer? = { // BLOCK

            $composer

          }

          val $changed: Int = { // BLOCK

            438

          }

          val $default: Int = { // BLOCK

            0

          }

          // }

          var modifier: Modifier? = modifier

          var verticalArrangement: Vertical? = verticalArrangement

          var horizontalAlignment: Horizontal? = horizontalAlignment

          var $composer: Composer? = $composer

          { // BLOCK

            $composer.startReplaceableGroup(key = -483455358)

            sourceInformation(composer = $composer, sourceInformation = "CC(Column)P(2,3,1)78@3944L61,79@4010L133:Column.kt#2w3rfo")

          }

          when {

            areEqualByValue(first = $default.and(other = 1).reinterpret<Int, Int>(), second = 0.reinterpret<Int, Int>()).not() -> modifier = <get-$companion>()

          }

          when {

            areEqualByValue(first = $default.and(other = 2).reinterpret<Int, Int>(), second = 0.reinterpret<Int, Int>()).not() -> verticalArrangement = <get-$instance>().<get-Top>()

          }

          when {

            areEqualByValue(first = $default.and(other = 4).reinterpret<Int, Int>(), second = 0.reinterpret<Int, Int>()).not() -> horizontalAlignment = <get-$companion>().<get-Start>()

          }

          val measurePolicy: MeasurePolicy = columnMeasurePolicy(verticalArrangement = verticalArrangement, horizontalAlignment = horizontalAlignment, $composer = $composer, $changed = 14.and(other = $changed.shr(bitCount = 3)).or(other = 112.and(other = $changed.shr(bitCount = 3))))

          { // RETURNABLE BLOCK

            { // INLINED FUNCTION BLOCK

              // COMPOSITE {

              val modifier: Modifier? = { // BLOCK

                modifier

              }

              val measurePolicy: MeasurePolicy = { // BLOCK

                measurePolicy

              }

              val $composer: Composer? = { // BLOCK

                $composer

              }

              val $changed: Int = { // BLOCK

                112.and(other = $changed.shl(bitCount = 3))

              }

              val $default: Int = { // BLOCK

                0

              }

              // }

              var modifier: Modifier? = modifier

              var $composer: Composer? = $composer

              { // BLOCK

                $composer.startReplaceableGroup(key = -1323940314)

                sourceInformation(composer = $composer, sourceInformation = "CC(Layout)P(!1,2)79@3208L23,81@3298L420:Layout.kt#80mrfh")

              }

              when {

                areEqualByValue(first = $default.and(other = 2).reinterpret<Int, Int>(), second = 0.reinterpret<Int, Int>()).not() -> modifier = <get-$companion>()

              }

              val compositeKeyHash: Int = <get-currentCompositeKeyHash>($composer = $composer, $changed = 0)

              val localMap: CompositionLocalMap = $composer.<get-currentCompositionLocalMap>()

              { // RETURNABLE BLOCK

                { // INLINED FUNCTION BLOCK

                  // COMPOSITE {

                  val factory: Function0<Any?> = { // BLOCK

                    <get-$companion>().<get-Constructor>()

                  }

                  val skippableUpdate: @ExtensionFunctionType Function3<SkippableUpdater<Any?>, Composer, Int, Unit> = { // BLOCK

                    materializerOf(modifier = modifier)

                  }

                  val $composer: Composer? = { // BLOCK

                    $composer

                  }

                  val $changed: Int = { // BLOCK

                    6.or(other = 7168.and(other = $changed.shl(bitCount = 9)))

                  }

                  // }

                  var $composer: Composer? = $composer

                  when {

                    $composer.<get-applier>() !is Applier<Any> -> invalidApplier()

                  }

                  $composer.startReusableNode()

                  when {

                    $composer.<get-inserting>() -> { // BLOCK

                      $composer.createNode<Any?>(factory = factory)

                    }

                    true -> { // BLOCK

                      $composer.useNode()

                    }

                  }

                  { // RETURNABLE BLOCK

                    { // INLINED FUNCTION BLOCK

                      // COMPOSITE {

                      val $this$ReusableComposeNode: Updater<ComposeUiNode> = { // BLOCK

                        { // BLOCK

                          val tmp0: Composer = $composer

                          <constructor>(composer = tmp0)

                          tmp0

                        }

                      }

                      // }

                      $this$ReusableComposeNode.set<MeasurePolicy>(value = measurePolicy, block = <get-$companion>().<get-SetMeasurePolicy>())

                      $this$ReusableComposeNode.set<CompositionLocalMap>(value = localMap, block = <get-$companion>().<get-SetResolvedCompositionLocals>())

                      { // RETURNABLE BLOCK

                        { // INLINED FUNCTION BLOCK

                          // COMPOSITE {

                          val this: Updater<T> = { // BLOCK

                            $this$ReusableComposeNode

                          }

                          val value: Int = { // BLOCK

                            compositeKeyHash

                          }

                          val block: @ExtensionFunctionType Function2<T, @ParameterName(name = "value") Int, Unit> = { // BLOCK

                            <get-$companion>().<get-SetCompositeKeyHash>()

                          }

                          // }

                          return { // RETURNABLE BLOCK

                            { // INLINED FUNCTION BLOCK

                              // COMPOSITE {

                              val receiver: Any? = { // BLOCK

                                this.<get-composer>()

                              }

                              // }

                              { // RETURNABLE BLOCK

                                { // INLINED FUNCTION BLOCK

                                  return theUnitInstance()

                                }

                              }

                              return { // RETURNABLE BLOCK

                                { // INLINED FUNCTION BLOCK

                                  // COMPOSITE {

                                  val $this$with: Composer = { // BLOCK

                                    receiver

                                  }

                                  // }

                                  when {

                                    when {

                                      $this$with.<get-inserting>() -> true

                                      true -> { // BLOCK

                                        val tmp0: Any? = $this$with.rememberedValue()

                                        when {

                                          EQEQEQ(arg0 = tmp0, arg1 = null).not() -> tmp0.equals(other = <Int-box>(value = value))

                                          else -> false

                                        }

                                      }.not()

                                    } -> { // BLOCK

                                      $this$with.updateRememberedValue(value = <Int-box>(value = value))

                                      this.<get-composer>().apply<@ParameterName(name = "value") Int, T>(value = <Int-box>(value = value), block = block)

                                    }

                                  }

                                  return theUnitInstance()

                                }

                              } /*as Unit */

                            }

                          }

                          return theUnitInstance()

                        }

                      }

                      return theUnitInstance()

                    }

                  }

                  skippableUpdate.invoke(p1 = <SkippableUpdater-box>(value = { // BLOCK

                    val tmp1: Composer = $composer

                    <constructor>(composer = tmp1)

                    tmp1

                  }), p2 = $composer, p3 = <Int-box>(value = 112.and(other = $changed.shr(bitCount = 3))))

                  $composer.startReplaceableGroup(key = 2058660585)

                  { // RETURNABLE BLOCK

                    { // INLINED FUNCTION BLOCK

                      // COMPOSITE {

                      val $composer: Composer? = { // BLOCK

                        $composer

                      }

                      val $changed: Int = { // BLOCK

                        14.and(other = $changed.shr(bitCount = 9))

                      }

                      // }

                      var $composer: Composer? = $composer

                      { // BLOCK

                        sourceInformationMarkerStart(composer = $composer, key = -385166937, sourceInformation = "C80@4058L9:Column.kt#2w3rfo")

                        // COMPOSITE {

                        { // RETURNABLE BLOCK

                          { // INLINED FUNCTION BLOCK

                            // COMPOSITE {

                            val $this$Column: ColumnScope = { // BLOCK

                              <get-$instance>()

                            }

                            val $composer: Composer? = { // BLOCK

                              $composer

                            }

                            val $changed: Int = { // BLOCK

                              6.or(other = 112.and(other = $changed.shr(bitCount = 6)))

                            }

                            // }

                            var $composer: Composer? = $composer

                            // COMPOSITE {

                            Text(text = "Picked file: ".plus(other = { // BLOCK

                              val tmp0_elvis_lhs: String? = App$lambda$1($pickedFilePath$delegate = $pickedFilePath$delegate)

                              when {

                                EQEQEQ(arg0 = tmp0_elvis_lhs.reinterpret<String?, Any?>(), arg1 = null) -> "None"

                                true -> tmp0_elvis_lhs

                              }

                            }), modifier = // COMPOSITE {

                            null

                            // }, color = // COMPOSITE {

                            { // BLOCK

                              val tmp3: ULong = { // BLOCK

                                val tmp2: Long = 0L

                                <constructor>(data = tmp2)

                                tmp2

                              }

                              <constructor>(value = tmp3)

                              tmp3

                            }

                            // }, fontSize = // COMPOSITE {

                            { // BLOCK

                              val tmp4: Long = 0L

                              <constructor>(packedValue = tmp4)

                              tmp4

                            }

                            // }, fontStyle = // COMPOSITE {

                            null

                            // }, fontWeight = // COMPOSITE {

                            null

                            // }, fontFamily = // COMPOSITE {

                            null

                            // }, letterSpacing = // COMPOSITE {

                            { // BLOCK

                              val tmp5: Long = 0L

                              <constructor>(packedValue = tmp5)

                              tmp5

                            }

                            // }, textDecoration = // COMPOSITE {

                            null

                            // }, textAlign = // COMPOSITE {

                            null

                            // }, lineHeight = // COMPOSITE {

                            { // BLOCK

                              val tmp6: Long = 0L

                              <constructor>(packedValue = tmp6)

                              tmp6

                            }

                            // }, overflow = // COMPOSITE {

                            { // BLOCK

                              val tmp7: Int = 0

                              <constructor>(value = tmp7)

                              tmp7

                            }

                            // }, softWrap = // COMPOSITE {

                            false

                            // }, maxLines = // COMPOSITE {

                            0

                            // }, minLines = // COMPOSITE {

                            0

                            // }, onTextLayout = // COMPOSITE {

                            null

                            // }, style = // COMPOSITE {

                            null

                            // }, $composer = $composer, $changed = 0, $changed1 = 0, $default = 131070)

                            Button(onClick = { // BLOCK

                              // COMPOSITE {

                              // }

                              $App$lambda$6$lambda$5$FUNCTION_REFERENCE$6($filePickerLauncher = filePickerLauncher)

                            }, modifier = // COMPOSITE {

                            null

                            // }, enabled = // COMPOSITE {

                            false

                            // }, interactionSource = // COMPOSITE {

                            null

                            // }, elevation = // COMPOSITE {

                            null

                            // }, shape = // COMPOSITE {

                            null

                            // }, border = // COMPOSITE {

                            null

                            // }, colors = // COMPOSITE {

                            null

                            // }, contentPadding = // COMPOSITE {

                            null

                            // }, content = <get-$instance>().<get-lambda-1>(), $composer = $composer, $changed = 805306368, $default = 510)

                            // }

                            return theUnitInstance()

                          }

                        }

                        // }

                        sourceInformationMarkerEnd(composer = $composer)

                      }

                      return theUnitInstance()

                    }

                  }

                  $composer.endReplaceableGroup()

                  $composer.endNode()

                  return theUnitInstance()

                }

              }

              $composer.endReplaceableGroup()

              return theUnitInstance()

            }

          }

          $composer.endReplaceableGroup()

          return theUnitInstance()

        }

      }

    }

    true -> $composer.skipToGroupEnd()

  }

  return theUnitInstance()

}

    at org.jetbrains.kotlin.backend.konan.llvm.NativeCodeGeneratorException$Companion.wrap(IrToBitcode.kt:65)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor$FileScope.wrapException(IrToBitcode.kt:2148)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor$FileScope.wrapException(IrToBitcode.kt:2131)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFile(IrToBitcode.kt:3351)

    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFile(IrElementVisitorVoid.kt:180)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFile(IrToBitcode.kt:244)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFile(IrToBitcode.kt:244)

    at org.jetbrains.kotlin.ir.declarations.IrFile.accept(IrFile.kt:28)

    at org.jetbrains.kotlin.ir.declarations.IrModuleFragment.acceptChildren(IrModuleFragment.kt:39)

    at org.jetbrains.kotlin.ir.visitors.IrVisitorsKt.acceptChildrenVoid(IrVisitors.kt:15)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitModuleFragment(IrToBitcode.kt:475)

    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitModuleFragment(IrElementVisitorVoid.kt:116)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitModuleFragment(IrToBitcode.kt:244)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitModuleFragment(IrToBitcode.kt:244)

    at org.jetbrains.kotlin.ir.declarations.IrModuleFragment.accept(IrModuleFragment.kt:33)

    at org.jetbrains.kotlin.ir.visitors.IrVisitorsKt.acceptVoid(IrVisitors.kt:11)

    at org.jetbrains.kotlin.backend.konan.driver.phases.BitcodeGenerationKt.CodegenPhase$lambda$2(BitcodeGeneration.kt:76)

    at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$createSimpleNamedCompilerPhase$3.phaseBody(PhaseBuilders.kt:93)

    at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$createSimpleNamedCompilerPhase$3.phaseBody(PhaseBuilders.kt:81)

    at org.jetbrains.kotlin.backend.common.phaser.SimpleNamedCompilerPhase.phaseBody(CompilerPhase.kt:226)

    at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase.invoke(CompilerPhase.kt:113)

    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine.runPhase(Machinery.kt:139)

    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine.runPhase$default(Machinery.kt:130)

    at org.jetbrains.kotlin.backend.konan.driver.phases.TopLevelPhasesKt.runCodegen(TopLevelPhases.kt:386)

    at org.jetbrains.kotlin.backend.konan.driver.phases.TopLevelPhasesKt.runBackendCodegen(TopLevelPhases.kt:329)

    at org.jetbrains.kotlin.backend.konan.driver.phases.TopLevelPhasesKt.compileModule(TopLevelPhases.kt:261)

    at org.jetbrains.kotlin.backend.konan.driver.phases.TopLevelPhasesKt.runBackend$lambda$11$runAfterLowerings(TopLevelPhases.kt:114)

    at org.jetbrains.kotlin.backend.konan.driver.phases.TopLevelPhasesKt.runBackend(TopLevelPhases.kt:139)

    at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.produceObjCFramework(DynamicCompilerDriver.kt:76)

    at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.run$lambda$2$lambda$1$lambda$0(DynamicCompilerDriver.kt:42)

    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion$startTopLevel$topLevelPhase$1.phaseBody(Machinery.kt:98)

    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion$startTopLevel$topLevelPhase$1.phaseBody(Machinery.kt:92)

    at org.jetbrains.kotlin.backend.common.phaser.SimpleNamedCompilerPhase.phaseBody(CompilerPhase.kt:226)

    at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase.invoke(CompilerPhase.kt:113)

    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion.startTopLevel(Machinery.kt:105)

    at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.run(DynamicCompilerDriver.kt:36)

    at org.jetbrains.kotlin.backend.konan.KonanDriver.run(KonanDriver.kt:129)

    at org.jetbrains.kotlin.cli.bc.K2Native.runKonanDriver(K2Native.kt:152)

    at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:69)

    at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:36)

    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)

    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)

    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)

    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:79)

    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:43)

    at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:180)

    at org.jetbrains.kotlin.cli.bc.K2Native$Companion.mainNoExitWithRenderer$lambda$2(K2Native.kt:189)

    at org.jetbrains.kotlin.util.UtilKt.profileIf(Util.kt:22)

    at org.jetbrains.kotlin.util.UtilKt.profile(Util.kt:16)

    at org.jetbrains.kotlin.cli.bc.K2Native$Companion.mainNoExitWithRenderer(K2Native.kt:188)

    at org.jetbrains.kotlin.cli.bc.K2NativeKt.mainNoExitWithXcodeRenderer(K2Native.kt:207)

    at org.jetbrains.kotlin.cli.utilities.MainKt$daemonMainWithXcodeRenderer$1.invoke(main.kt:52)

    at org.jetbrains.kotlin.cli.utilities.MainKt$daemonMainWithXcodeRenderer$1.invoke(main.kt:52)

    at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:20)

    at org.jetbrains.kotlin.cli.utilities.MainKt.inProcessMain(main.kt:57)

    at org.jetbrains.kotlin.cli.utilities.MainKt.daemonMainWithXcodeRenderer(main.kt:52)

    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)

    at java.base/java.lang.reflect.Method.invoke(Method.java:580)

    at org.jetbrains.kotlin.compilerRunner.KotlinToolRunner.runInProcess(KotlinToolRunner.kt:208)

    at org.jetbrains.kotlin.compilerRunner.KotlinToolRunner.run(KotlinToolRunner.kt:142)

    at org.jetbrains.kotlin.compilerRunner.KotlinNativeToolRunner.run(nativeToolRunners.kt:153)

    at org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink$compile$1.invoke(KotlinNativeLink.kt:452)

    at org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink$compile$1.invoke(KotlinNativeLink.kt:400)

    at org.jetbrains.kotlin.compilerRunner.ReportUtilsKt.addBuildMetricsForTaskAction(reportUtils.kt:261)

    at org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink.compile(KotlinNativeLink.kt:400)

    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)

    at java.base/java.lang.reflect.Method.invoke(Method.java:580)

    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)

    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)

    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)

    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)

    at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)

    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)

    at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229)

    at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212)

    at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195)

    at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162)

    at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)

    at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)

    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)

    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)

    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)

    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)

    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)

    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)

    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)

    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)

    at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)

    at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)

    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)

    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)

    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)

    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)

    at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:67)

    at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:45)

    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)

    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)

    at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)

    at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)

    at org.gradle.internal.Either$Right.fold(Either.java:175)

    at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)

    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)

    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)

    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)

    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)

    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:76)

    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:54)

    at java.base/java.util.Optional.orElseGet(Optional.java:364)

    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)

    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)

    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)

    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)

    at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)

    at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)

    at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)

    at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)

    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)

    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)

    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:106)

    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:55)

    at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:64)

    at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:43)

    at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:125)

    at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:61)

    at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:36)

    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)

    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)

    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)

    at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)

    at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)

    at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)

    at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:289)

    at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)

    at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)

    at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)

    at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)

    at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)

    at java.base/java.util.Optional.orElseGet(Optional.java:364)

    at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)

    at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)

    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)

    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)

    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:48)

    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)

    at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:61)

    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:127)

    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)

    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)

    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)

    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)

    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)

    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)

    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)

    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)

    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)

    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)

    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)

    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)

    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)

    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)

    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)

    at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80)

    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)

    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)

    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)

    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)

    at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:116)

    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:138)

    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:123)

    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:35)

    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:51)

    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:54)

    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:43)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)

    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)

    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)

    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)

    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:40)

    at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$executeTasks$10(DefaultBuildLifecycleController.java:313)

    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:266)

    at org.gradle.internal.model.StateTransitionController.lambda$tryTransition$8(StateTransitionController.java:177)

    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)

    at org.gradle.internal.model.StateTransitionController.tryTransition(StateTransitionController.java:177)

    at org.gradle.internal.build.DefaultBuildLifecycleController.executeTasks(DefaultBuildLifecycleController.java:304)

    at org.gradle.internal.build.DefaultBuildWorkGraphController$DefaultBuildWorkGraph.runWork(DefaultBuildWorkGraphController.java:220)

    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:264)

    at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:128)

    at org.gradle.composite.internal.DefaultBuildController.doRun(DefaultBuildController.java:181)

    at org.gradle.composite.internal.DefaultBuildController.access$000(DefaultBuildController.java:50)

    at org.gradle.composite.internal.DefaultBuildController$BuildOpRunnable.lambda$run$0(DefaultBuildController.java:198)

    at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80)

    at org.gradle.composite.internal.DefaultBuildController$BuildOpRunnable.run(DefaultBuildController.java:198)

    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)

    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)

    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)

    at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)

    at java.base/java.lang.Thread.run(Thread.java:1583)

Caused by: java.lang.IllegalStateException: FIELD name:com_mohamedrejeb_calf_picker_FilePickerFileType_Image$stable type:kotlin.Int visibility:public [final,static]

    at org.jetbrains.kotlin.backend.konan.llvm.LlvmDeclarations.forStaticField(LlvmDeclarations.kt:53)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.staticFieldPtr(IrToBitcode.kt:1871)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateGetField(IrToBitcode.kt:1767)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateExpression(IrToBitcode.kt:983)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateExpression$default(IrToBitcode.kt:971)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateExplicitArgs(IrToBitcode.kt:2366)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateCall(IrToBitcode.kt:2237)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateExpression(IrToBitcode.kt:975)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateExpression$default(IrToBitcode.kt:971)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.generateVariable(IrToBitcode.kt:1472)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.generateStatement(IrToBitcode.kt:1013)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateContainerExpression(IrToBitcode.kt:2211)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateExpression(IrToBitcode.kt:991)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.generateWhenCase(IrToBitcode.kt:1346)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateWhen(IrToBitcode.kt:1314)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateExpression(IrToBitcode.kt:987)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.evaluateExpression$default(IrToBitcode.kt:971)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.generateStatement(IrToBitcode.kt:1012)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.generateStatement$default(IrToBitcode.kt:1010)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFunction(IrToBitcode.kt:888)

    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitSimpleFunction(IrElementVisitorVoid.kt:144)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitSimpleFunction(IrToBitcode.kt:244)

    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitSimpleFunction(IrElementVisitorVoid.kt:140)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitSimpleFunction(IrToBitcode.kt:244)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitSimpleFunction(IrToBitcode.kt:244)

    at org.jetbrains.kotlin.ir.declarations.IrSimpleFunction.accept(IrSimpleFunction.kt:36)

    at org.jetbrains.kotlin.ir.declarations.IrFile.acceptChildren(IrFile.kt:34)

    at org.jetbrains.kotlin.ir.visitors.IrVisitorsKt.acceptChildrenVoid(IrVisitors.kt:15)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFile$lambda$41$lambda$40(IrToBitcode.kt:606)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.runAndProcessInitializers(IrToBitcode.kt:455)

    at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFile(IrToBitcode.kt:605)

    ... 220 more

Repoducing

Sample code

import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import com.mohamedrejeb.calf.core.LocalPlatformContext
import com.mohamedrejeb.calf.io.getPath
import com.mohamedrejeb.calf.picker.FilePickerFileType
import com.mohamedrejeb.calf.picker.rememberFilePickerLauncher
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
import kotlinx.coroutines.launch
import org.jetbrains.compose.ui.tooling.preview.Preview

@Composable
@Preview
fun App() {

    val coroutineScope = rememberCoroutineScope()
    val platformContext = LocalPlatformContext.current

    var pickedFilePath by remember { mutableStateOf<String?>(null) }

    MaterialTheme {

        val filePickerLauncher = rememberFilePickerLauncher(
            type = FilePickerFileType.Image,
            onResult = { files ->
                coroutineScope.launch(Dispatchers.IO) {
                    files.firstOrNull()?.let {
                        pickedFilePath = it.getPath(platformContext)
                    }
                }
            }
        )

        Column(
            modifier = Modifier
                .fillMaxSize(),
            verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally
        ) {

            Text("Picked file: ${pickedFilePath ?: "None"}")

            Button(
                onClick = {
                    filePickerLauncher.launch()
                }
            ) {
                Text("Open file picker")
            }

        }

    }

}

Full reproduction sample

RepoductionSample.zip

MohamedRejeb commented 1 month ago

Thanks for reporting this. I will check it.

MohamedRejeb commented 1 month ago

This is an issue with Kotlin 2.0.0. Try updating your project to Kotlin 2.0.10-RC2 and it should be fixed.

https://github.com/JetBrains/compose-multiplatform/issues/4809

H4kt commented 1 month ago

This is an issue with Kotlin 2.0.0. Try updating your project to Kotlin 2.0.10-RC2 and it should be fixed.

https://github.com/JetBrains/compose-multiplatform/issues/4809

Thanks for your awesome work. I'll try it tonight/tomorrow.