From 275a38a6d3301c1cc162e28251120ec1a1b84381 Mon Sep 17 00:00:00 2001 From: "Emmanouil (Manos) Koukoutos" <emmanouil.koukoutos@epfl.ch> Date: Thu, 4 Dec 2014 17:20:13 +0100 Subject: [PATCH] Reorder some datagen productions --- src/main/scala/leon/datagen/NaiveDataGen.scala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/scala/leon/datagen/NaiveDataGen.scala b/src/main/scala/leon/datagen/NaiveDataGen.scala index d65e5ce1d..212b3ba22 100644 --- a/src/main/scala/leon/datagen/NaiveDataGen.scala +++ b/src/main/scala/leon/datagen/NaiveDataGen.scala @@ -57,7 +57,10 @@ class NaiveDataGen(ctx: LeonContext, p: Program, evaluator: Evaluator, _bounds : // generating lists. val ccChildren = act.knownCCDescendents - val (leafs,conss) = ccChildren.partition(_.fields.size == 0) + val (leafs,conss) = ccChildren.partition(_.fields.isEmpty) + + // FIXME: Will not work for mutually recursive types + val sortedConss = conss sortBy { _.fields.count{ _.getType.isInstanceOf[ClassType]}} // The stream for leafs... val leafsStream = leafs.toStream.flatMap { cct => @@ -65,7 +68,7 @@ class NaiveDataGen(ctx: LeonContext, p: Program, evaluator: Evaluator, _bounds : } // ...to which we append the streams for constructors. - leafsStream.append(interleave(conss.map { cct => + leafsStream.append(interleave(sortedConss.map { cct => generate(cct) })) -- GitLab