feat(r8): Propagate class-level synthesized flag to members#73
feat(r8): Propagate class-level synthesized flag to members#73
Conversation
|
We could filter them out in |
|
we keept marking frames as synthesized and don't drop them in this crate. We can close this PR. We could also hide the synthesized frames in the Sentry UI |
cf3f732 to
82d62e3
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
When a class is marked as synthesized via R8's `com.android.tools.r8.synthesized` header, propagate that flag to all its members so callers can filter synthetic frames. Also fix test mappings that used invalid single-quote JSON for R8 headers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… test - Remove r8-synthetic.NOTES.md (stale, describes pre-fix state) - Fix MOVED_SYNTHETIZED_INFO_MAPPING R8 header to use valid JSON - Add test_synthetic_lambda_method_synthesized_flag_cache to verify the cache path also sets method_synthesized correctly Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dav1dde
left a comment
There was a problem hiding this comment.
High level this makes sense to me to inherit the flag from the class to its members, but there was some prior discussions about how and where to do it, where I am missing a bit of context:
we keept marking frames as synthesized and don't drop them in this crate. We can close this PR. We could also hide the synthesized frames in the Sentry UI
What made you change your mind, seemed like it was an option to not do this?
Sebastian also mentioned a different place remap_stacktrace, why did you choose this approach?
|
@Dav1dde sorry, should've definitely written something to give more context: We still need to drop them, because users might have their custom stacktrace rules configured, which forcefully mark synthesized frames as I've repurposed this PR (should've probably closed this and opened a new one) to propagate synthesized classes flag to its members, since we don't operate on the class level, but on the members level in sentry/symbolicator. |
Part of #40
Propagates the class-level
is_synthesizedflag (from# {"id":"com.android.tools.r8.synthesized"}headers) to all members of that class. This allows callers (e.g. Sentry symbolicator) to filter out synthetic frames viamethod_synthesized()— this crate intentionally keeps them in the output.Changes
method_synthesized()flag verification