autonomousapps/dependency-analysis-gradle-plugin

Kotlin removes unreachable bytecode causing DAGP to think a dependency is unused

開放

#1,429 建立於 2025年4月30日

 (5 則留言) (0 個反應) (0 位負責人)Kotlin (154 個分叉)auto 404
bughelp wantedsponsorabletoolchain:kotlin

倉庫指標

星標
 (2,172 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

Plugin version 2.17.0

Gradle version 8.14

JDK version 17

(Optional) Kotlin and Kotlin Gradle Plugin (KGP) version 2.1.20

Describe the bug Kotlin optimizes out unreachable bytecode like if (false) so if a usage of a dependency is inside of that block, DAGP considers it unused and will remove it. Removing it causes a compilation failure.

To Reproduce Steps to reproduce the behavior:

  1. In the attached project, :app:fixDependencies removes the dependency on :utils
  2. Running :app:assemble will have a compilation error because the dependency was removed

Expected behavior The :utils dependency should not be removed by fixDependencies and should be reported in build health as being used.

dagp-if-false-repro.zip

貢獻者指南