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