We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
import stainless.collection._ object MeasureCrash { def f(l: List[(BigInt, BigInt, BigInt)]): Unit = { require(l.forall { case (_, _, c) => true }) if (!l.isEmpty) f(l.tail) } ensuring { _ => l.map { case (token, _, identity) => token -> identity }.forall(_ => true) } }
[ Fatal ] Run has failed with error: java.lang.IndexOutOfBoundsException: 2 [ Fatal ] [ Fatal ] scala.collection.immutable.Vector.checkRangeConvert(Vector.scala:127) [ Fatal ] scala.collection.immutable.Vector.apply(Vector.scala:118) [ Fatal ] stainless.termination.CICFA$Analysis.$anonfun$rec$20(ControlFlowAnalysis.scala:328) [ Fatal ] scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:245) [ Fatal ] scala.collection.immutable.Set$Set2.foreach(Set.scala:132) [ Fatal ] scala.collection.TraversableLike.flatMap(TraversableLike.scala:245) [ Fatal ] scala.collection.TraversableLike.flatMap$(TraversableLike.scala:242) [ Fatal ] scala.collection.AbstractTraversable.flatMap(Traversable.scala:108) [ Fatal ] stainless.termination.CICFA$Analysis.rec(ControlFlowAnalysis.scala:326) [ Fatal ] stainless.termination.CICFA$Analysis.$anonfun$rec$24(ControlFlowAnalysis.scala:352) [ Fatal ] scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126) [ Fatal ] scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122) [ Fatal ] scala.collection.immutable.List.foldLeft(List.scala:89) [ Fatal ] stainless.termination.CICFA$Analysis.$anonfun$rec$23(ControlFlowAnalysis.scala:350) [ Fatal ] scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238) [ Fatal ] scala.collection.immutable.List.foreach(List.scala:392) [ Fatal ] scala.collection.TraversableLike.map(TraversableLike.scala:238) [ Fatal ] scala.collection.TraversableLike.map$(TraversableLike.scala:231) [ Fatal ] scala.collection.immutable.List.map(List.scala:298) [ Fatal ] stainless.termination.CICFA$Analysis.rec(ControlFlowAnalysis.scala:347) [ Fatal ] stainless.termination.CICFA$Analysis.<init>(ControlFlowAnalysis.scala:403) [ Fatal ] stainless.termination.CICFA.$anonfun$analyze$2(ControlFlowAnalysis.scala:102) [ Fatal ] scala.util.Try$.apply(Try.scala:213) [ Fatal ] inox.utils.TimerStorage.runAndGetTime(Timer.scala:93) [ Fatal ] inox.utils.TimerStorage.run(Timer.scala:88) [ Fatal ] stainless.termination.CICFA.$anonfun$analyze$1(ControlFlowAnalysis.scala:102) [ Fatal ] scala.collection.mutable.HashMap.getOrElseUpdate(HashMap.scala:86) [ Fatal ] stainless.termination.CICFA.analyze(ControlFlowAnalysis.scala:101) [ Fatal ] stainless.termination.CICFA.analyze$(ControlFlowAnalysis.scala:100) [ Fatal ] stainless.termination.TerminationChecker$$anon$1$cfa$.analyze(TerminationChecker.scala:115) [ Fatal ] stainless.termination.RelationBuilder.getRelations(RelationBuilder.scala:54) [ Fatal ] stainless.termination.RelationBuilder.getRelations$(RelationBuilder.scala:51) [ Fatal ] stainless.termination.TerminationChecker$$anon$1$integerOrdering$.getRelations(TerminationChecker.scala:120) [ Fatal ] stainless.termination.RecursionProcessor.$anonfun$run$1(RecursionProcessor.scala:37) [ Fatal ] scala.util.Try$.apply(Try.scala:213) [ Fatal ] inox.utils.TimerStorage.runAndGetTime(Timer.scala:93) [ Fatal ] inox.utils.TimerStorage.run(Timer.scala:88) [ Fatal ] stainless.termination.RecursionProcessor.run(RecursionProcessor.scala:35) [ Fatal ] stainless.termination.RecursionProcessor.run$(RecursionProcessor.scala:32) [ Fatal ] stainless.termination.TerminationChecker$$anon$1$recursionProcessor$.run(TerminationChecker.scala:141) [ Fatal ] stainless.termination.ProcessingPipeline$$anon$4.next(ProcessingPipeline.scala:231) [ Fatal ] stainless.termination.ProcessingPipeline$$anon$4.next(ProcessingPipeline.scala:224) [ Fatal ] scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:512) [ Fatal ] scala.collection.Iterator.foreach(Iterator.scala:941) [ Fatal ] scala.collection.Iterator.foreach$(Iterator.scala:941) [ Fatal ] scala.collection.AbstractIterator.foreach(Iterator.scala:1429) [ Fatal ] stainless.termination.ProcessingPipeline.runPipeline(ProcessingPipeline.scala:259) [ Fatal ] stainless.termination.ProcessingPipeline.terminates(ProcessingPipeline.scala:159) [ Fatal ] stainless.termination.ProcessingPipeline.terminates$(ProcessingPipeline.scala:140) [ Fatal ] stainless.termination.TerminationChecker$$anon$1.terminates(TerminationChecker.scala:99) [ Fatal ] stainless.termination.MeasureInference$TransformerContext.$anonfun$inferMeasure$1(MeasureInference.scala:66) [ Fatal ] scala.util.Try$.apply(Try.scala:213) [ Fatal ] inox.utils.TimerStorage.runAndGetTime(Timer.scala:93) [ Fatal ] inox.utils.TimerStorage.run(Timer.scala:88) [ Fatal ] stainless.termination.MeasureInference$TransformerContext.inferMeasure(MeasureInference.scala:64) [ Fatal ] stainless.termination.MeasureInference.extractFunction(MeasureInference.scala:113) [ Fatal ] stainless.termination.MeasureInference.extractFunction$(MeasureInference.scala:111) [ Fatal ] stainless.termination.MeasureInference$$anon$2.extractFunction(MeasureInference.scala:130) [ Fatal ] stainless.termination.MeasureInference$$anon$2.extractFunction(MeasureInference.scala:130) [ Fatal ] stainless.extraction.CachingPhase.$anonfun$extractSymbols$2(ExtractionPipeline.scala:96) [ Fatal ] stainless.extraction.utils.ConcurrentCache.cached(ConcurrentCaches.scala:18) [ Fatal ] stainless.extraction.ExtractionCaches$ExtractionCache.cached(ExtractionCaches.scala:165) [ Fatal ] stainless.extraction.CachingPhase.$anonfun$extractSymbols$1(ExtractionPipeline.scala:96) [ Fatal ] scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238) [ Fatal ] scala.collection.Iterator.foreach(Iterator.scala:941) [ Fatal ] scala.collection.Iterator.foreach$(Iterator.scala:941) [ Fatal ] scala.collection.AbstractIterator.foreach(Iterator.scala:1429) [ Fatal ] scala.collection.MapLike$DefaultValuesIterable.foreach(MapLike.scala:213) [ Fatal ] scala.collection.TraversableLike.map(TraversableLike.scala:238) [ Fatal ] scala.collection.TraversableLike.map$(TraversableLike.scala:231) [ Fatal ] scala.collection.AbstractTraversable.map(Traversable.scala:108) [ Fatal ] stainless.extraction.CachingPhase.extractSymbols(ExtractionPipeline.scala:95) [ Fatal ] stainless.extraction.CachingPhase.extractSymbols$(ExtractionPipeline.scala:94) [ Fatal ] stainless.termination.MeasureInference$$anon$2.stainless$termination$MeasureInference$$super$extractSymbols(MeasureInference.scala:130) [ Fatal ] stainless.termination.MeasureInference.extractSymbols(MeasureInference.scala:120) [ Fatal ] stainless.termination.MeasureInference.extractSymbols$(MeasureInference.scala:119) [ Fatal ] stainless.termination.MeasureInference$$anon$2.extractSymbols(MeasureInference.scala:130) [ Fatal ] stainless.termination.MeasureInference$$anon$2.extractSymbols(MeasureInference.scala:130) [ Fatal ] stainless.extraction.CachingPhase.extract(ExtractionPipeline.scala:91) [ Fatal ] stainless.extraction.CachingPhase.extract$(ExtractionPipeline.scala:89) [ Fatal ] stainless.termination.MeasureInference$$anon$2.extract(MeasureInference.scala:130) [ Fatal ] stainless.extraction.utils.DebugPipeline.$anonfun$extract$2(DebugPipeline.scala:118) [ Fatal ] scala.util.Try$.apply(Try.scala:213) [ Fatal ] inox.utils.TimerStorage.runAndGetTime(Timer.scala:93) [ Fatal ] inox.utils.TimerStorage.run(Timer.scala:88) [ Fatal ] stainless.extraction.utils.DebugPipeline.$anonfun$extract$1(DebugPipeline.scala:118) [ Fatal ] stainless.extraction.utils.DebugSymbols.debug(DebugPipeline.scala:64) [ Fatal ] stainless.extraction.utils.DebugSymbols.debug$(DebugPipeline.scala:54) [ Fatal ] stainless.extraction.utils.DebugPipeline$$anon$1.debug(DebugPipeline.scala:126) [ Fatal ] stainless.extraction.utils.DebugPipeline.extract(DebugPipeline.scala:119) [ Fatal ] stainless.extraction.utils.DebugPipeline.extract$(DebugPipeline.scala:117) [ Fatal ] stainless.extraction.utils.DebugPipeline$$anon$1.extract(DebugPipeline.scala:126) [ Fatal ] stainless.extraction.ExtractionPipeline$$anon$1.extract(ExtractionPipeline.scala:28) [ Fatal ] stainless.extraction.ExtractionPipeline$$anon$1.extract(ExtractionPipeline.scala:28) [ Fatal ] stainless.extraction.ExtractionPipeline$$anon$1.extract(ExtractionPipeline.scala:28) [ Fatal ] stainless.ComponentRun.extract(Component.scala:75) [ Fatal ] stainless.ComponentRun.extract$(Component.scala:75) [ Fatal ] stainless.verification.VerificationRun.extract(VerificationComponent.scala:44) [ Fatal ] stainless.ComponentRun.apply(Component.scala:98) [ Fatal ] stainless.ComponentRun.apply$(Component.scala:97) [ Fatal ] stainless.verification.VerificationRun.apply(VerificationComponent.scala:44) [ Fatal ] stainless.ComponentRun.apply(Component.scala:112) [ Fatal ] stainless.ComponentRun.apply$(Component.scala:111) [ Fatal ] stainless.verification.VerificationRun.apply(VerificationComponent.scala:44) [ Fatal ] stainless.frontend.SplitCallBack.$anonfun$processFunctionSymbols$3(SplitCallBack.scala:179) [ Fatal ] scala.util.Try$.apply(Try.scala:213) [ Fatal ] stainless.frontend.SplitCallBack.$anonfun$processFunctionSymbols$2(SplitCallBack.scala:179) [ Fatal ] scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238) [ Fatal ] scala.collection.immutable.List.foreach(List.scala:392) [ Fatal ] scala.collection.TraversableLike.map(TraversableLike.scala:238) [ Fatal ] scala.collection.TraversableLike.map$(TraversableLike.scala:231) [ Fatal ] scala.collection.immutable.List.map(List.scala:298) [ Fatal ] stainless.frontend.SplitCallBack.processFunctionSymbols(SplitCallBack.scala:178) [ Fatal ] stainless.frontend.SplitCallBack.processFunction(SplitCallBack.scala:154) [ Fatal ] stainless.frontend.SplitCallBack.$anonfun$processSymbols$3(SplitCallBack.scala:138) [ Fatal ] stainless.frontend.SplitCallBack.$anonfun$processSymbols$3$adapted(SplitCallBack.scala:137) [ Fatal ] scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:877) [ Fatal ] scala.collection.Iterator.foreach(Iterator.scala:941) [ Fatal ] scala.collection.Iterator.foreach$(Iterator.scala:941) [ Fatal ] scala.collection.AbstractIterator.foreach(Iterator.scala:1429) [ Fatal ] scala.collection.MapLike$DefaultKeySet.foreach(MapLike.scala:181) [ Fatal ] scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:876) [ Fatal ] stainless.frontend.SplitCallBack.processSymbols(SplitCallBack.scala:137) [ Fatal ] stainless.frontend.SplitCallBack.endExtractions(SplitCallBack.scala:67) [ Fatal ] stainless.frontend.ThreadedFrontend$$anon$1.run(ThreadedFrontend.scala:38) [ Fatal ] java.lang.Thread.run(Thread.java:748)
The text was updated successfully, but these errors were encountered:
Still crashes.
Sorry, something went wrong.
Funnily enough, this variation doesn't:
import stainless.collection._ object MeasureCrash { def f(l: List[(BigInt, BigInt, BigInt)]): Unit = { require(l.forall { case _ => true }) // No destructuring if (!l.isEmpty) f(l.tail) } ensuring { _ => l.map { case (token, _, identity) => token -> identity }.forall(_ => true) } }
Fix epfl-lara#731
1cc6fd4
Fix #731
bcc5b4d
Successfully merging a pull request may close this issue.
The text was updated successfully, but these errors were encountered: