Skip to content

Conversation

@shishkin-pavel
Copy link

@shishkin-pavel shishkin-pavel commented Aug 6, 2025

Fixes CMP-7505

Testing

manual testing + test in compose compiler tests

This should be tested by QA

Release Notes

N/A

@shishkin-pavel
Copy link
Author

ExperimentalMaterial3ExpressiveApi is now marked internal, probably some of its other uses should be removed too

@sekater sekater self-requested a review August 7, 2025 07:35
ModalWideNavigationRailProperties()

@OptIn(ExperimentalComposeUiApi::class)
@ExperimentalMaterial3ExpressiveApi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is it required? It's just about fixing a warning? Can we just ignore it and revert unrelated changes?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems like it leaks via expect/actuals to all those functions on other platforms. that results in inability to use those functions because they all "poisoned" with @ExperimentalMaterial3ExpressiveApi and that marker is internal

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did it work before?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it was marked with @ExperimentalMaterial3ExpressiveApi on all targets so it required OptIn to work. now markers are gone everywhere except for skiko. but their presence here seems to be leaking to expect declarations so it is effectively marked ExperimentalMaterial3ExpressiveApi everywhere and that annotation is internal now

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm aware of the changes in material3 and this annotation, I don't get why it break things only with updated compiler plugin?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

with old compiler plugin it is not possible to use this api either


// Create configuration that we'll use to load Compose compiler plugin
val configuration = project.configurations.create(COMPILER_PLUGIN_CONFIGURATION)
// Add Compose compiler plugin to kotlinPlugin configuration, making sure it works
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

release/ 1.9

Why we don't merge to jb-main first? Seems we have issues there as well? If so, better to merge to jb-main first and then cherry-pick, to avoid deviations (including the API changes). It shouldn't interfere with our future proper Kotlin update.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

created new mr to jb-main: #2293

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought that in jb-main we should just switch to Kotlin 2.2 where it's fixed

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is a gap between that. better to not have deviations in this gap

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and k2.2.20 (where that gonna be fixed) is not published yet (RC expected soon)

@shishkin-pavel
Copy link
Author

closed in favor of #2293

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants