Merge pull request #10718 from tamasvajk/kotlin-internal-repr

Kotlin: ignore properties in `java/internal-representation-exposure` check
This commit is contained in:
Tamás Vajk
2022-10-10 13:58:55 +02:00
committed by GitHub
5 changed files with 15 additions and 2 deletions

View File

@@ -120,8 +120,12 @@ predicate exposesByStore(Callable c, Field f, Expr why, string whyText) {
from Callable c, Field f, Expr why, string whyText
where
exposesByReturn(c, f, why, whyText) or
exposesByStore(c, f, why, whyText)
(
exposesByReturn(c, f, why, whyText) or
exposesByStore(c, f, why, whyText)
) and
// Kotlin properties expose internal representation, but it's not accidental, so ignore them
not exists(Property p | p.getBackingField() = f)
select c,
c.getName() + " exposes the internal representation stored in field " + f.getName() +
". The value may be modified $@.", why.getLocation(), whyText