lisa
lisa copied to clipboard
[BUG] Heap analyses should react to type conversions and castings
Description
Sometimes, to explicitly invoke a method from a superclass (e.g., super.foo()
), the receiver of the call can be set to (Superclass) this
, that is, the current object casted to its supertype. Logic inside heap abstractions should support expressions of this kind: e.g., at https://github.com/lisa-analyzer/lisa/blob/0be57d8e989e15f576a1f78d795b278128ea5298/lisa/lisa-analyses/src/main/java/it/unive/lisa/analysis/heap/pointbased/AllocationSiteBasedAnalysis.java#L126 rhs
might be a BinaryExpression
with a TypeConv
operator.