Skip to content

Commit 0c39d1d

Browse files
authored
Merge pull request #687 from viperproject/meilers_warn_for_ignored_triggers
Emit warning for ignored triggers
2 parents 8f2c9e2 + 08298a7 commit 0c39d1d

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

src/main/scala/rules/Evaluator.scala

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
package viper.silicon.rules
88

99
import viper.silver.ast
10-
import viper.silver.verifier.{CounterexampleTransformer, PartialVerificationError}
10+
import viper.silver.verifier.{CounterexampleTransformer, PartialVerificationError, TypecheckerWarning}
1111
import viper.silver.verifier.errors.{ErrorWrapperWithExampleTransformer, PreconditionInAppFalse}
1212
import viper.silver.verifier.reasons._
1313
import viper.silicon.common.collections.immutable.InsertionOrderedSet
@@ -23,6 +23,7 @@ import viper.silicon.verifier.Verifier
2323
import viper.silicon.{Map, TriggerSets}
2424
import viper.silicon.interfaces.state.{ChunkIdentifer, NonQuantifiedChunk}
2525
import viper.silicon.logger.records.data.{CondExpRecord, EvaluateRecord, ImpliesRecord}
26+
import viper.silver.reporter.WarningsDuringTypechecking
2627
import viper.silver.ast.WeightedQuantifier
2728

2829
/* TODO: With the current design w.r.t. parallelism, eval should never "move" an execution
@@ -1312,7 +1313,9 @@ object evaluator extends EvaluationRules {
13121313
v.decider.assume(pcDelta)
13131314
Q(s, cachedTriggerTerms ++ remainingTriggerTerms, v)
13141315
case _ =>
1315-
// bookkeeper.logfiles("evalTrigger").println(s"Couldn't evaluate some trigger expressions:\n $remainingTriggerExpressions\nReason:\n $r")
1316+
for (e <- remainingTriggerExpressions)
1317+
v.reporter.report(WarningsDuringTypechecking(Seq(
1318+
TypecheckerWarning(s"Cannot use trigger $e, since it is not evaluated while evaluating the body of the quantifier", e.pos))))
13161319
Q(s, cachedTriggerTerms, v)
13171320
}
13181321
}

0 commit comments

Comments
 (0)