fix(desktop): disable method/marking/static ProGuard optimization
The smoke test discovered that ProGuard's method/marking/static pass converts kmp-tor's AsyncFs.of() from instance to static. The JVM then throws IncompatibleClassChangeError at launch because callers still use invokevirtual. Also updates smoke-test-desktop.yml trigger: runs on any PR touching desktopApp/ (not just build config files). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,20 +1,11 @@
|
||||
# ⚠️ WARNING: Before merging, change the trigger back to workflow_dispatch only.
|
||||
# The pull_request trigger is temporary so we can validate this workflow on the PR
|
||||
# and attach run results as proof-of-work. Production trigger should be:
|
||||
#
|
||||
# on:
|
||||
# workflow_dispatch:
|
||||
# pull_request:
|
||||
# paths:
|
||||
# - 'desktopApp/build.gradle.kts'
|
||||
# - 'desktopApp/compose-rules.pro'
|
||||
# - '.github/workflows/smoke-test-desktop.yml'
|
||||
#
|
||||
name: Desktop Smoke Test
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'desktopApp/**'
|
||||
- '.github/workflows/smoke-test-desktop.yml'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
@@ -121,9 +121,14 @@
|
||||
# Reason: Type 'okio/BufferedSource' is not assignable to
|
||||
# 'okio/RealBufferedSource'.
|
||||
#
|
||||
# Disabling just this sub-pass keeps merging, inlining, peephole and
|
||||
# Disabling just these sub-passes keeps merging, inlining, peephole and
|
||||
# dead-code optimizations on. Everything else in `optimize` stays.
|
||||
-optimizations !method/specialization/returntype
|
||||
#
|
||||
# `method/marking/static` converts instance methods to static when they
|
||||
# don't reference `this`. kmp-tor's `AsyncFs.of()` is called via
|
||||
# invokevirtual; after ProGuard marks it static the JVM throws
|
||||
# IncompatibleClassChangeError at launch (discovered by CI smoke test).
|
||||
-optimizations !method/specialization/returntype,!method/marking/static
|
||||
|
||||
# ============================================================================
|
||||
# Desktop-only: Jackson — mobile module does not ship Jackson on Android
|
||||
|
||||
Reference in New Issue
Block a user