Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 19285b159b14cbb21d26af97224dbbe6a0b8909a
Author: Leland Richardson <lelandr@google.com>
Date: Thu Jun 18 13:37:21 2020
Composable Emits
===
Relnote:"
Prior to this change, the compose compiler plugin would non-trivially intercept calls to constructors inside of a @Composable function if there was an “emit operator” method found on the resolved `composer` in scope. This call resolution strategy was confusing to users and did not follow standard kotlin resolution rules. This resolution existed mostly as a vestigial concept, and is no longer core to the mental model of Compose.
This commit removes all non-standard call resolution that the compose compiler was doing by introducing top-level emit composables that act as a more explicit, albeit verbose, substitute to the emit operators. Although there is additional verbosity to these calls, we feel the benefits of following standard kotlin resolution rules and dramatically reducing the API surface area of the compose compiler plugin more than justifies it.
In order to make this change, a few breaking changes to the runtime and to core needed to happen. They are outlined below:
Compose Runtime Changes:
- `Applier<T>` was changed from a class to an interface
- Added `AbstractApplier<T>` class
- `ApplyAdapter<T>` was removed in favor of `Applier<T>`
- `Composer<N>` was changed from open to final
- `escapeCompose` and `NullCompositionScope` were deprecated as they are no longer necessary.
- `ComposerUpdater<N, T>` was renamed to `Updater<T>`
- a `reconcile` method was added to `Updater<T>`
- existing `compositionFor` overloads were deprecated, new overload was added accepting an `Applier<T>` in lieu of a composer factory.
- two top-level `emit` composables were added
UI Core Changes:
- `UiComposer` was removed in favor of a `UiApplier` implementation
- `VectorComposer` was removed in favor of a `VectorApplier` implementation
- `VectorScope` and all composables that were extension functions to it are now top-level composables and `VectorScope` has been removed
- a top level `emitView` composable was added to make emitting views easier
- `subcomposeInto` no longer requires a `Context` parameter
"
Fixes: 158123804
Change-Id: I5205af707238a70d600c105843cd99e88a5381e0
M compose/compose-compiler-hosted/integration-tests/build.gradle
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractCodegenSignatureTest.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractCodegenTest.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractLoweringTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposeCallLoweringTests.kt
D compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposeCallResolutionDiagnosticsTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposeCallResolverTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposerParamSignatureTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposerParamTransformTests.kt
D compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/EmitTransformTests.kt
D compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/FcsCodegenTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/FcsTypeResolutionTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/KtxCrossModuleTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/KtxTransformationTest.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/LambdaMemoizationTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/RobolectricComposeTester.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/analysis/ComposableCheckerTests.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposableAnnotationChecker.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposableEmitDescriptor.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposeCallResolutionInterceptorExtension.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposeEmitResolver.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposeIrGenerationExtension.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposeUtils.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposerMetadata.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/KtxNameConventions.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/analysis/ComposeDefaultErrorMessages.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/analysis/ComposeErrors.java
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/analysis/ComposeWritableSlices.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/AbstractComposeLowering.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposableCallTransformer.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposableFunctionBodyTransformer.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposeResolutionMetadataTransformer.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposerLambdaMemoization.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposerParamTransformer.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/IrSourcePrinter.kt
M compose/compose-runtime/api/0.1.0-dev15.txt
M compose/compose-runtime/api/current.txt
M compose/compose-runtime/api/public_plus_experimental_0.1.0-dev15.txt
M compose/compose-runtime/api/public_plus_experimental_current.txt
M compose/compose-runtime/api/restricted_0.1.0-dev15.txt
M compose/compose-runtime/api/restricted_current.txt
A compose/compose-runtime/samples/src/main/java/androidx/compose/samples/CustomTreeCompositionSamples.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/AmbientTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/BaseComposeTest.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/ComposeIntoTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/ComposeModelTests.kt
D compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/ComposerCompat.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/DisposeTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/EffectsTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/EmittableComposer.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/NewCodeGenTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/RecomposerTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/RestartTests.kt
M compose/compose-runtime/src/commonMain/kotlin/androidx/compose/Applier.kt
M compose/compose-runtime/src/commonMain/kotlin/androidx/compose/Composer.kt
M compose/compose-runtime/src/commonMain/kotlin/androidx/compose/Composition.kt
A compose/compose-runtime/src/commonMain/kotlin/androidx/compose/Emit.kt
M compose/compose-runtime/src/test/kotlin/androidx/compose/CompositionTests.kt
M compose/compose-runtime/src/test/kotlin/androidx/compose/mock/MockViewValidator.kt
A compose/compose-runtime/src/test/kotlin/androidx/compose/mock/ViewApplier.kt
D compose/compose-runtime/src/test/kotlin/androidx/compose/mock/ViewComposer.kt
M compose/compose-runtime/src/test/kotlin/androidx/compose/mock/Views.kt
M ui/ui-android-view/integration-tests/android-view-demos/src/main/java/androidx/ui/androidview/demos/ComplexInteractions.kt
M ui/ui-android-view/integration-tests/android-view-demos/src/main/java/androidx/ui/androidview/demos/WebComponentActivity.kt
M ui/ui-android-view/src/main/java/androidx/ui/androidview/WebComponent.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/integration-tests/ui-core-demos/src/main/java/androidx/ui/core/demos/VectorGraphicsDemo.kt
M ui/ui-core/integration-tests/ui-core-demos/src/main/java/androidx/ui/core/demos/viewinterop/ViewInCompose.kt
A ui/ui-core/samples/src/main/java/androidx/ui/core/samples/EmitViewSamples.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/core/AndroidPointerInputTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/core/HotReloadTests.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/core/test/AndroidViewCompatTest.kt
D ui/ui-core/src/androidMain/kotlin/androidx/compose/ComposerCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/Layout.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/LayoutNode.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/Popup.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/Wrapper.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/graphics/vector/VectorCompose.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/graphics/vector/VectorPainter.kt
A ui/ui-core/src/androidMain/kotlin/androidx/ui/node/UiApplier.kt
D ui/ui-core/src/androidMain/kotlin/androidx/ui/node/UiComposer.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/viewinterop/ComposedView.kt
A ui/ui-core/src/androidMain/kotlin/androidx/ui/viewinterop/EmitView.kt
M ui/ui-core/src/test/kotlin/androidx/ui/core/ComposedModifierTest.kt
M ui/ui-core/src/test/kotlin/androidx/ui/core/selection/SelectionManagerDragTest.kt
M ui/ui-core/src/test/kotlin/androidx/ui/core/selection/SelectionManagerLongPressDragTest.kt
M ui/ui-core/src/test/kotlin/androidx/ui/core/selection/SelectionManagerTest.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/lazy/LazyItems.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/lazy/LazyItemsState.kt
M ui/ui-rxjava2/src/main/java/androidx/ui/rxjava2/RxJava2Adapter.kt
M ui/ui-saved-instance-state/src/commonMain/kotlin/androidx/ui/savedinstancestate/UiSavedStateRegistry.kt
M ui/ui-text-android/api/0.1.0-dev15.txt
M ui/ui-text-android/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text-android/api/restricted_0.1.0-dev15.txt
https://android-review.googlesource.com/1327176
Branch: androidx-master-dev
commit 19285b159b14cbb21d26af97224dbbe6a0b8909a
Author: Leland Richardson <lelandr@google.com>
Date: Thu Jun 18 13:37:21 2020
Composable Emits
===
Relnote:"
Prior to this change, the compose compiler plugin would non-trivially intercept calls to constructors inside of a @Composable function if there was an “emit operator” method found on the resolved `composer` in scope. This call resolution strategy was confusing to users and did not follow standard kotlin resolution rules. This resolution existed mostly as a vestigial concept, and is no longer core to the mental model of Compose.
This commit removes all non-standard call resolution that the compose compiler was doing by introducing top-level emit composables that act as a more explicit, albeit verbose, substitute to the emit operators. Although there is additional verbosity to these calls, we feel the benefits of following standard kotlin resolution rules and dramatically reducing the API surface area of the compose compiler plugin more than justifies it.
In order to make this change, a few breaking changes to the runtime and to core needed to happen. They are outlined below:
Compose Runtime Changes:
- `Applier<T>` was changed from a class to an interface
- Added `AbstractApplier<T>` class
- `ApplyAdapter<T>` was removed in favor of `Applier<T>`
- `Composer<N>` was changed from open to final
- `escapeCompose` and `NullCompositionScope` were deprecated as they are no longer necessary.
- `ComposerUpdater<N, T>` was renamed to `Updater<T>`
- a `reconcile` method was added to `Updater<T>`
- existing `compositionFor` overloads were deprecated, new overload was added accepting an `Applier<T>` in lieu of a composer factory.
- two top-level `emit` composables were added
UI Core Changes:
- `UiComposer` was removed in favor of a `UiApplier` implementation
- `VectorComposer` was removed in favor of a `VectorApplier` implementation
- `VectorScope` and all composables that were extension functions to it are now top-level composables and `VectorScope` has been removed
- a top level `emitView` composable was added to make emitting views easier
- `subcomposeInto` no longer requires a `Context` parameter
"
Fixes: 158123804
Change-Id: I5205af707238a70d600c105843cd99e88a5381e0
M compose/compose-compiler-hosted/integration-tests/build.gradle
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractCodegenSignatureTest.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractCodegenTest.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractLoweringTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposeCallLoweringTests.kt
D compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposeCallResolutionDiagnosticsTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposeCallResolverTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposerParamSignatureTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/ComposerParamTransformTests.kt
D compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/EmitTransformTests.kt
D compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/FcsCodegenTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/FcsTypeResolutionTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/KtxCrossModuleTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/KtxTransformationTest.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/LambdaMemoizationTests.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/RobolectricComposeTester.kt
M compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/analysis/ComposableCheckerTests.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposableAnnotationChecker.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposableEmitDescriptor.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposeCallResolutionInterceptorExtension.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposeEmitResolver.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposeIrGenerationExtension.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposeUtils.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/ComposerMetadata.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/KtxNameConventions.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/analysis/ComposeDefaultErrorMessages.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/analysis/ComposeErrors.java
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/analysis/ComposeWritableSlices.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/AbstractComposeLowering.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposableCallTransformer.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposableFunctionBodyTransformer.kt
D compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposeResolutionMetadataTransformer.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposerLambdaMemoization.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/ComposerParamTransformer.kt
M compose/compose-compiler-hosted/src/main/java/androidx/compose/plugins/kotlin/compiler/lower/IrSourcePrinter.kt
M compose/compose-runtime/api/0.1.0-dev15.txt
M compose/compose-runtime/api/current.txt
M compose/compose-runtime/api/public_plus_experimental_0.1.0-dev15.txt
M compose/compose-runtime/api/public_plus_experimental_current.txt
M compose/compose-runtime/api/restricted_0.1.0-dev15.txt
M compose/compose-runtime/api/restricted_current.txt
A compose/compose-runtime/samples/src/main/java/androidx/compose/samples/CustomTreeCompositionSamples.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/AmbientTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/BaseComposeTest.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/ComposeIntoTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/ComposeModelTests.kt
D compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/ComposerCompat.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/DisposeTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/EffectsTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/EmittableComposer.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/NewCodeGenTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/RecomposerTests.kt
M compose/compose-runtime/src/androidAndroidTest/kotlin/androidx/compose/test/RestartTests.kt
M compose/compose-runtime/src/commonMain/kotlin/androidx/compose/Applier.kt
M compose/compose-runtime/src/commonMain/kotlin/androidx/compose/Composer.kt
M compose/compose-runtime/src/commonMain/kotlin/androidx/compose/Composition.kt
A compose/compose-runtime/src/commonMain/kotlin/androidx/compose/Emit.kt
M compose/compose-runtime/src/test/kotlin/androidx/compose/CompositionTests.kt
M compose/compose-runtime/src/test/kotlin/androidx/compose/mock/MockViewValidator.kt
A compose/compose-runtime/src/test/kotlin/androidx/compose/mock/ViewApplier.kt
D compose/compose-runtime/src/test/kotlin/androidx/compose/mock/ViewComposer.kt
M compose/compose-runtime/src/test/kotlin/androidx/compose/mock/Views.kt
M ui/ui-android-view/integration-tests/android-view-demos/src/main/java/androidx/ui/androidview/demos/ComplexInteractions.kt
M ui/ui-android-view/integration-tests/android-view-demos/src/main/java/androidx/ui/androidview/demos/WebComponentActivity.kt
M ui/ui-android-view/src/main/java/androidx/ui/androidview/WebComponent.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/integration-tests/ui-core-demos/src/main/java/androidx/ui/core/demos/VectorGraphicsDemo.kt
M ui/ui-core/integration-tests/ui-core-demos/src/main/java/androidx/ui/core/demos/viewinterop/ViewInCompose.kt
A ui/ui-core/samples/src/main/java/androidx/ui/core/samples/EmitViewSamples.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/core/AndroidPointerInputTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/core/HotReloadTests.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/core/test/AndroidViewCompatTest.kt
D ui/ui-core/src/androidMain/kotlin/androidx/compose/ComposerCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/Layout.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/LayoutNode.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/Popup.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/Wrapper.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/graphics/vector/VectorCompose.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/graphics/vector/VectorPainter.kt
A ui/ui-core/src/androidMain/kotlin/androidx/ui/node/UiApplier.kt
D ui/ui-core/src/androidMain/kotlin/androidx/ui/node/UiComposer.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/viewinterop/ComposedView.kt
A ui/ui-core/src/androidMain/kotlin/androidx/ui/viewinterop/EmitView.kt
M ui/ui-core/src/test/kotlin/androidx/ui/core/ComposedModifierTest.kt
M ui/ui-core/src/test/kotlin/androidx/ui/core/selection/SelectionManagerDragTest.kt
M ui/ui-core/src/test/kotlin/androidx/ui/core/selection/SelectionManagerLongPressDragTest.kt
M ui/ui-core/src/test/kotlin/androidx/ui/core/selection/SelectionManagerTest.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/lazy/LazyItems.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/lazy/LazyItemsState.kt
M ui/ui-rxjava2/src/main/java/androidx/ui/rxjava2/RxJava2Adapter.kt
M ui/ui-saved-instance-state/src/commonMain/kotlin/androidx/ui/savedinstancestate/UiSavedStateRegistry.kt
M ui/ui-text-android/api/0.1.0-dev15.txt
M ui/ui-text-android/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text-android/api/restricted_0.1.0-dev15.txt
Description
2. Refactor current usage
3. Deprecate unnecessary API
4. Delete obsolete compiler APIs