mirror of
https://github.com/github/codeql.git
synced 2026-06-30 00:55:29 +02:00
Why this is needed: - library-tests/exprs/DB-CHECK was failing with INVALID_KEY and INVALID_KEY_SET in params for kotlin.jvm.internal.Intrinsics.areEqual. - The Java binary probing code matched methods by name plus arity and used the first match, which is ambiguous when both primitive and boxed overloads exist. - Under that ambiguity, callable labels could be boxed while extracted params remained primitive (or vice versa), creating conflicting rows for the same key. What changed: - For both parameter and return-type probing, gather all matching overloads and compute classifier-vs-primitive from the full candidate set. - Return a concrete answer only when all matches agree; return null when matches disagree. - Apply the same unambiguous matching rule in both K1 metadata and K2 ASM fallback paths. Effect: - The boxing fallback now activates only when the Java binary evidence is deterministic, preventing callable-label collisions and restoring DB integrity in the affected Kotlin2 dataset check. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>