Zac Sweers
04/09/2026, 9:12 PMSirUnsupportedType errors report more information? It's currently pretty opaque and inactionableZac Sweers
04/09/2026, 9:13 PMRick Clephas
04/09/2026, 9:22 PMRick Clephas
04/09/2026, 9:23 PMZac Sweers
04/09/2026, 9:23 PMZac Sweers
04/09/2026, 9:23 PMZac Sweers
04/09/2026, 9:24 PMRick Clephas
04/09/2026, 9:26 PMSirUnsupportedTypeZac Sweers
04/09/2026, 9:26 PMZac Sweers
04/09/2026, 9:26 PMRick Clephas
04/09/2026, 9:28 PMZac Sweers
04/09/2026, 9:29 PMZac Sweers
04/09/2026, 9:33 PMArtem Olkov
04/10/2026, 8:43 AMArtem Olkov
04/10/2026, 8:54 AMZac Sweers
04/12/2026, 9:56 PMShowing Recent Issues
/Users/zacsweers/dev/kotlin/contributing/circuit/samples/counter/apps/iosApp/ /Users/zacsweers/dev/kotlin/contributing/circuit/samples/counter/build/SPMPackage/iosSimulatorArm64/Debug/Sources/OrgJetbrainsComposeUiUiGraphics/OrgJetbrainsComposeUiUiGraphics.swift:2364:21: type member must not be named 'Type', since it would conflict with the 'foo.Type' expression
public enum Type: KotlinRuntimeSupport._KotlinBridgeable, Swift.CaseIterable, Swift.LosslessStringConvertible, Swift.RawRepresentable {
^~~~
`Type`
It's not a type I own, but appears to imply that any library that has a class called Type is wholly incompatible with swift export then? In this case this API coming from compose UIArtem Olkov
04/13/2026, 8:08 AMit doesn't propagate opt-ins for experimental APIsYes, support for that was merged on the last week - https://github.com/JetBrains/kotlin/pull/5813 This will be included in 2.4.20 release π First dev build is dev-371
type member must not be named 'Type', since it would conflict with the 'foo.Type' expressionOh, that's a fun bug. I will file a bug for that. On that note - Why do you export ComposeUI? I always assumed that this is not a library that would be useful on the side of iOS. But I'm curious about your usecase.
Artem Olkov
04/13/2026, 8:17 AMArtem Olkov
04/13/2026, 8:18 AMZac Sweers
04/13/2026, 1:55 PMWhy do you export ComposeUI?I don't! At least not as far as I know? This is all there is in the swift export block. The closest guess I have for this is that it's an
api dependency in commonMain, which does make sense for this libraryZac Sweers
04/13/2026, 1:56 PMArtem Olkov
04/13/2026, 1:56 PMArtem Olkov
04/13/2026, 4:13 PMAt least not as far as I know?Yeah, that can happen, as we do transitive export - if a part of your public API requires some part of another libraries public API - this part will also be exported. And everything that is needed by that part. As an example
// module foo
class Foo // will be exported
class Bar { // will be exported
fun foo(): Foo = TODO() // forces export of Foo
}
class Zar // will not be exported
// module shared // exported by swift export
fun bar(): Bar = TODO() // forces export of Bar
If my assumption about what Type is exported in your case - you either have a PathSegment as a part of your public API, or some other class from ui-graphics is a part of your public API and that class transitively exports PathSegment.
in future versions of swift export we plan to release an exclusion from this algorithm for a particular module, but I don't have any public timelines for that π
I think that in your case it's the following:
1. Remove is a public value of type ImageVector - link
2. ImageVector can be found here
3. ImageVector starts pulling ui-graphics to the public api surface uncontrollably and leads to this error.
At least at first glance it's the only usage of this library in a public api in your sample, but maybe I don't see everythingZac Sweers
04/13/2026, 4:15 PMArtem Olkov
04/13/2026, 4:17 PMThe API I need to expose to swift is limited but the API to other consumers can be broaderFor that there is a HiddenFromObjC annotation, that is also supported by Swift Export π
Zac Sweers
04/13/2026, 4:17 PMArtem Olkov
04/13/2026, 4:17 PMplicitly define dependency as implementation inNope, that has zero effect in the export config.
Artem Olkov
04/13/2026, 4:19 PMah no I meant the underlying dependency at the build levelAnd again - we will provide an API for such cases, but we do not have a public timeline for that π
Zac Sweers
04/13/2026, 4:20 PMArtem Olkov
04/13/2026, 4:20 PMArtem Olkov
04/13/2026, 4:23 PMArtem Olkov
04/13/2026, 4:23 PMZac Sweers
04/13/2026, 4:24 PM