@@ -4,6 +4,7 @@ import viper.gobra.ast.frontend.PNode
44import viper .gobra .ast .{frontend => gobra }
55import viper .gobra .backend .BackendVerifier
66import viper .gobra .dependencyAnalysis .GobraDependencyAnalysisAggregator
7+ import viper .gobra .frontend .Config
78import viper .gobra .frontend .info .TypeInfo
89import viper .gobra .reporting .Source .Verifier
910import viper .gobra .reporting .Source .Verifier .GobraDependencyAnalysisInfo
@@ -12,12 +13,14 @@ import viper.silver.ast.utility.ViperStrategy
1213import viper .silver .verifier .AbstractError
1314import viper .silver .{ast => vpr }
1415
15- class DependencyAnalysisAnnotationTransformer (typeInfo : TypeInfo ) extends ViperTransformer {
16+ class DependencyAnalysisAnnotationTransformer (typeInfo : TypeInfo , config : Config ) extends ViperTransformer {
1617
1718 private val gobraNodes : Iterable [GobraDependencyAnalysisInfo ] = GobraDependencyAnalysisAggregator .identifyGobraNodes(typeInfo)
1819 private val positions = typeInfo.tree.root.positions.positions
1920
2021 override def transform (task : BackendVerifier .Task ): Either [Seq [AbstractError ], BackendVerifier .Task ] = {
22+ if (! config.enableDependencyAnalysis) return Right (task)
23+
2124 val programWithAnalysisSources = addDependencyAnalysisSourceInfo(task.program)
2225 Right (task.copy(program = programWithAnalysisSources))
2326 }
@@ -30,14 +33,8 @@ class DependencyAnalysisAnnotationTransformer(typeInfo: TypeInfo) extends ViperT
3033 private def addDependencyAnalysisSourceInfo (p : vpr.Program ): vpr.Program = {
3134 ViperStrategy .Slim ({
3235 case member : vpr.Member =>
33- val newInfo = getNewInfo(member, member.pos, {
34- case _ : gobra.PFunctionDecl | _ : gobra.PMethodDecl
35- | _ : gobra.PDomainType | _ : gobra.PPredType
36- => NoInfo
37- case _ => disableDependencyAnalysis
38- }, disableDependencyAnalysis)
36+ val newInfo = getNewInfo(member, member.pos, {_ => NoInfo }, disableDependencyAnalysis)
3937 member.withMeta((member.pos, newInfo, member.errT))
40-
4138 case stmt : vpr.Stmt =>
4239 val sourceInfo = stmt.info.getUniqueInfo[Verifier .Info ]
4340 val depInfo = getDependencyAnalysisInfo(sourceInfo)
0 commit comments