IntermediateResult should take dependees as Set[SomeEPK]

Issue #144 new
florian_kuebler created an issue

When returning a IntermediateResult in FPCF the list of dependees has to be given. Currently this is a Traversable[SomeEOptionP]. So it is either possible to have duplicates of the exact same EOptionP within the dependees or more realistic multiple EOptionP elements having the same EPK. These cases can crash FPCF and they can actually occur.

Consider an analysis requiring a property of a method. If we analyze a very large piece of code and query the result of the same method several times, it could be the case that for the first time, the property store returns just the EPK, and later on the EP with an conditional result.

If I used the proposed type Set[SomeEPK] locally and always call ep.toEPK before adding it to dependees, the analysis runs forever. Which might seems like a bug to me.

Comments (2)

  1. Michael Eichberg repo owner

    As we have just discussed, I will add a specialized Set implementation EOptionPSet that should solve these issues.

  2. Log in to comment