From 921788db11f348e19127be9ec376c040575deae7 Mon Sep 17 00:00:00 2001 From: Mirco Dotta <mirco.dotta@gmail.com> Date: Thu, 9 Jul 2009 15:43:05 +0000 Subject: [PATCH] Quick fix to generate arbitrary object for any data type --- src/funcheck/scalacheck/ScalaCheck.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/funcheck/scalacheck/ScalaCheck.scala b/src/funcheck/scalacheck/ScalaCheck.scala index eecdd9e05..3a339639a 100644 --- a/src/funcheck/scalacheck/ScalaCheck.scala +++ b/src/funcheck/scalacheck/ScalaCheck.scala @@ -230,6 +230,8 @@ trait ScalaCheck extends FreshNameCreator { private def rhsGenDef(base: Tree)(d: DefDef)(extOwner: Symbol): Tree = { val DefDef(_,name,_,vparamss,retTpe,_) = d assert(vparamss.size <= 1, "currying is not supported. Change signature of "+d.symbol) + // XXX: quick fix to force creation of arbitrary objects for each data type, this should be refactored!! + Arbitrary.arbitrary(retTpe.asInstanceOf[TypeTree]) if(vparamss.head.isEmpty) Gen.value(Apply(base, Nil)) @@ -259,6 +261,7 @@ trait ScalaCheck extends FreshNameCreator { } } + Gen.lzy(body) } } @@ -333,7 +336,7 @@ trait ScalaCheck extends FreshNameCreator { tpe2arbApp += ThrowableClass.typeConstructor -> arbThrowable tpe2arbApp += DoubleClass.typeConstructor -> arbDouble tpe2arbApp += CharClass.typeConstructor -> arbChar - tpe2arbApp += StringClass.typeConstructor -> arbString + tpe2arbApp += StringClass.typeConstructor -> arbString // XXX: NOT WORKING tpe2arbApp += OptionClass.typeConstructor -> arbOption //lazy val ImmutableMapClass: Symbol = definitions.getClass(newTypeName("scala.collection.immutable.Map")) -- GitLab