Skip to content

Commit b6a2fbe

Browse files
author
Dominik Helm
committed
Dependencies for string interpretation handlers
1 parent 1808a65 commit b6a2fbe

File tree

9 files changed

+28
-16
lines changed

9 files changed

+28
-16
lines changed

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/interpretation/InterpretationHandler.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import org.opalj.br.fpcf.FPCFAnalysis
1111
import org.opalj.fpcf.FinalEP
1212
import org.opalj.fpcf.InterimResult
1313
import org.opalj.fpcf.ProperPropertyComputationResult
14+
import org.opalj.fpcf.PropertyBounds
1415
import org.opalj.fpcf.SomeEPS
1516
import org.opalj.tac.fpcf.properties.TACAI
1617
import org.opalj.tac.fpcf.properties.string.StringFlowFunctionProperty
@@ -76,5 +77,7 @@ abstract class InterpretationHandler extends FPCFAnalysis with StringAnalysisCon
7677

7778
object InterpretationHandler {
7879

80+
def uses: Set[PropertyBounds] = PropertyBounds.ubs(TACAI)
81+
7982
def getEntity(implicit state: InterpretationState): MethodPC = MethodPC(state.pc, state.dm)
8083
}

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/l0/L0StringAnalysis.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ package l0
88

99
import org.opalj.br.analyses.SomeProject
1010
import org.opalj.br.fpcf.FPCFLazyAnalysisScheduler
11+
import org.opalj.fpcf.PropertyBounds
1112
import org.opalj.fpcf.PropertyStore
1213
import org.opalj.tac.fpcf.analyses.string.flowanalysis.LazyMethodStringFlowAnalysis
1314
import org.opalj.tac.fpcf.analyses.string.interpretation.LazyStringFlowAnalysis
@@ -27,5 +28,7 @@ object LazyL0StringFlowAnalysis extends LazyStringFlowAnalysis {
2728
LazyL0StringFlowAnalysis
2829
)
2930

31+
override final def uses: Set[PropertyBounds] = super.uses ++ L0InterpretationHandler.uses
32+
3033
override def init(p: SomeProject, ps: PropertyStore): InitializationData = L0InterpretationHandler(p)
3134
}

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/l0/interpretation/L0InterpretationHandler.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package interpretation
99

1010
import org.opalj.br.analyses.SomeProject
1111
import org.opalj.fpcf.ProperPropertyComputationResult
12+
import org.opalj.fpcf.PropertyBounds
1213
import org.opalj.tac.fpcf.analyses.string.interpretation.InterpretationHandler
1314
import org.opalj.tac.fpcf.analyses.string.interpretation.InterpretationState
1415
import org.opalj.tac.fpcf.properties.string.StringFlowFunctionProperty
@@ -50,5 +51,7 @@ class L0InterpretationHandler(implicit override val project: SomeProject) extend
5051

5152
object L0InterpretationHandler {
5253

54+
def uses: Set[PropertyBounds] = InterpretationHandler.uses
55+
5356
def apply(project: SomeProject): L0InterpretationHandler = new L0InterpretationHandler()(project)
5457
}

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/l1/L1StringAnalysis.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ package l1
88

99
import org.opalj.br.analyses.SomeProject
1010
import org.opalj.br.fpcf.FPCFLazyAnalysisScheduler
11+
import org.opalj.fpcf.PropertyBounds
1112
import org.opalj.fpcf.PropertyStore
1213
import org.opalj.tac.fpcf.analyses.string.flowanalysis.LazyMethodStringFlowAnalysis
1314
import org.opalj.tac.fpcf.analyses.string.interpretation.LazyStringFlowAnalysis
@@ -26,5 +27,7 @@ object LazyL1StringFlowAnalysis extends LazyStringFlowAnalysis {
2627
LazyL1StringFlowAnalysis
2728
)
2829

30+
override final def uses: Set[PropertyBounds] = super.uses ++ L1InterpretationHandler.uses
31+
2932
override def init(p: SomeProject, ps: PropertyStore): InitializationData = L1InterpretationHandler(p)
3033
}

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/l1/interpretation/L1InterpretationHandler.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ package l1
88
package interpretation
99

1010
import org.opalj.br.analyses.SomeProject
11+
import org.opalj.br.fpcf.properties.SystemProperties
12+
import org.opalj.br.fpcf.properties.string.StringConstancyProperty
1113
import org.opalj.fpcf.ProperPropertyComputationResult
14+
import org.opalj.fpcf.PropertyBounds
1215
import org.opalj.tac.fpcf.analyses.string.interpretation.InterpretationState
1316
import org.opalj.tac.fpcf.analyses.string.l0.interpretation.L0InterpretationHandler
1417
import org.opalj.tac.fpcf.properties.string.StringFlowFunctionProperty
@@ -53,5 +56,8 @@ class L1InterpretationHandler(implicit override val project: SomeProject) extend
5356

5457
object L1InterpretationHandler {
5558

59+
def uses: Set[PropertyBounds] = L0InterpretationHandler.uses ++
60+
PropertyBounds.ubs(StringConstancyProperty, SystemProperties)
61+
5662
def apply(project: SomeProject): L1InterpretationHandler = new L1InterpretationHandler()(project)
5763
}

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/l2/L2StringAnalysis.scala

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ package l2
99
import org.opalj.br.analyses.ProjectInformationKeys
1010
import org.opalj.br.analyses.SomeProject
1111
import org.opalj.br.fpcf.FPCFLazyAnalysisScheduler
12-
import org.opalj.br.fpcf.properties.SystemProperties
13-
import org.opalj.br.fpcf.properties.cg.Callees
14-
import org.opalj.br.fpcf.properties.fieldaccess.FieldWriteAccessInformation
1512
import org.opalj.fpcf.PropertyBounds
1613
import org.opalj.fpcf.PropertyStore
1714
import org.opalj.tac.fpcf.analyses.string.flowanalysis.LazyMethodStringFlowAnalysis
@@ -31,11 +28,7 @@ object LazyL2StringFlowAnalysis extends LazyStringFlowAnalysis {
3128
LazyL2StringFlowAnalysis
3229
)
3330

34-
override final def uses: Set[PropertyBounds] = super.uses ++ PropertyBounds.ubs(
35-
Callees,
36-
FieldWriteAccessInformation,
37-
SystemProperties
38-
)
31+
override final def uses: Set[PropertyBounds] = super.uses ++ L2InterpretationHandler.uses
3932

4033
override final def init(p: SomeProject, ps: PropertyStore): InitializationData = L2InterpretationHandler(p)
4134

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/l2/interpretation/L2InterpretationHandler.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import org.opalj.br.analyses.ProjectInformationKeys
1111
import org.opalj.br.analyses.SomeProject
1212
import org.opalj.br.fpcf.ContextProviderKey
1313
import org.opalj.br.fpcf.analyses.ContextProvider
14+
import org.opalj.br.fpcf.properties.cg.Callees
1415
import org.opalj.fpcf.ProperPropertyComputationResult
16+
import org.opalj.fpcf.PropertyBounds
1517
import org.opalj.tac.fpcf.analyses.string.interpretation.InterpretationState
1618
import org.opalj.tac.fpcf.analyses.string.l1.interpretation.L1InterpretationHandler
1719
import org.opalj.tac.fpcf.properties.string.StringFlowFunctionProperty
@@ -53,5 +55,7 @@ object L2InterpretationHandler {
5355

5456
def requiredProjectInformation: ProjectInformationKeys = Seq(ContextProviderKey)
5557

58+
def uses: Set[PropertyBounds] = L1InterpretationHandler.uses ++ PropertyBounds.ubs(Callees)
59+
5660
def apply(project: SomeProject): L2InterpretationHandler = new L2InterpretationHandler()(project)
5761
}

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/l3/L3StringAnalysis.scala

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ package l3
99
import org.opalj.br.analyses.ProjectInformationKeys
1010
import org.opalj.br.analyses.SomeProject
1111
import org.opalj.br.fpcf.FPCFLazyAnalysisScheduler
12-
import org.opalj.br.fpcf.properties.SystemProperties
13-
import org.opalj.br.fpcf.properties.cg.Callees
14-
import org.opalj.br.fpcf.properties.fieldaccess.FieldWriteAccessInformation
1512
import org.opalj.fpcf.PropertyBounds
1613
import org.opalj.fpcf.PropertyStore
1714
import org.opalj.tac.fpcf.analyses.string.flowanalysis.LazyMethodStringFlowAnalysis
@@ -31,11 +28,7 @@ object LazyL3StringFlowAnalysis extends LazyStringFlowAnalysis {
3128
LazyL3StringFlowAnalysis
3229
)
3330

34-
override final def uses: Set[PropertyBounds] = super.uses ++ PropertyBounds.ubs(
35-
Callees,
36-
FieldWriteAccessInformation,
37-
SystemProperties
38-
)
31+
override final def uses: Set[PropertyBounds] = super.uses ++ L3InterpretationHandler.uses
3932

4033
override final def init(p: SomeProject, ps: PropertyStore): InitializationData = L3InterpretationHandler(p)
4134

OPAL/tac/src/main/scala/org/opalj/tac/fpcf/analyses/string/l3/interpretation/L3InterpretationHandler.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import org.opalj.br.analyses.DeclaredFieldsKey
1212
import org.opalj.br.analyses.ProjectInformationKeys
1313
import org.opalj.br.analyses.SomeProject
1414
import org.opalj.br.fpcf.ContextProviderKey
15+
import org.opalj.br.fpcf.properties.fieldaccess.FieldWriteAccessInformation
1516
import org.opalj.fpcf.ProperPropertyComputationResult
17+
import org.opalj.fpcf.PropertyBounds
1618
import org.opalj.tac.fpcf.analyses.string.interpretation.InterpretationState
1719
import org.opalj.tac.fpcf.analyses.string.l2.interpretation.L2InterpretationHandler
1820
import org.opalj.tac.fpcf.properties.string.StringFlowFunctionProperty
@@ -46,5 +48,7 @@ object L3InterpretationHandler {
4648

4749
def requiredProjectInformation: ProjectInformationKeys = Seq(DeclaredFieldsKey, ContextProviderKey)
4850

51+
def uses: Set[PropertyBounds] = L2InterpretationHandler.uses ++ PropertyBounds.ubs(FieldWriteAccessInformation)
52+
4953
def apply(project: SomeProject): L3InterpretationHandler = new L3InterpretationHandler()(project)
5054
}

0 commit comments

Comments
 (0)