Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
inox
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
LARA
inox
Commits
5b6d4529
Commit
5b6d4529
authored
15 years ago
by
Mirco Dotta
Browse files
Options
Downloads
Patches
Plain Diff
Refactore ScalaCheck modules commonalities into a GenericScalaCheckModule.
parent
e615288e
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/funcheck/scalacheck/ScalaCheck.scala
+175
-83
175 additions, 83 deletions
src/funcheck/scalacheck/ScalaCheck.scala
with
175 additions
and
83 deletions
src/funcheck/scalacheck/ScalaCheck.scala
+
175
−
83
View file @
5b6d4529
...
@@ -11,30 +11,132 @@ trait ScalaCheck extends FreshNameCreator {
...
@@ -11,30 +11,132 @@ trait ScalaCheck extends FreshNameCreator {
val
global
:
Global
val
global
:
Global
import
global._
import
global._
/** Transform the string <code>name</code> in method symbols from the <code>sym</code>
* class symbol. */
private
def
symDecl
(
sym
:
Symbol
,
name
:
String
)
=
sym
.
tpe
.
decl
(
name
)
/** Retrieve the constructor Symbol for the passed <code>cs</code> class symbol. */
private
def
constructorDecl
(
cs
:
ClassSymbol
)
=
cs
.
tpe
.
decl
(
nme
.
CONSTRUCTOR
)
trait
GenericScalaCheckModule
{
trait
GenericScalaCheckModule
{
/** Symbol for a module definition. */
protected
val
moduleSym
:
Symbol
protected
val
moduleSym
:
Symbol
/** Symbol for the module's companion class definition. */
protected
lazy
val
classSym
=
moduleSym
.
linkedClassOfModule
protected
lazy
val
classSym
=
moduleSym
.
linkedClassOfModule
/**
* <p>
* Take a <code>symbol</code> and method <code>name</code> and return the associated
* method's symbol.
* </p>
* <p>
* Note: if <code>symbol</code> does not contain a method named </code>name</code>, the
* returned symbol will be a <code>NoSymbol</code>.
* </p>
*
* @param symbol A module/class symbol,
* @param name A name of the method that should be part of the declared members of the <code>symbol</code>.
* @return The symbol for the method 'symbol.name' or <code>NoSymbol</code> if the <code>symbol</code> does
* not have a member named <code>name</code>.
*/
private
def
symDecl
(
symbol
:
Symbol
,
name
:
String
)
=
symbol
.
tpe
.
decl
(
name
)
/** Identical to symDecl(symbol: Symbol, name: String), but uses a Name object
* instead of a String for the <code>name</code>.*/
private
def
symDecl
(
symbol
:
Symbol
,
name
:
Name
)
=
symbol
.
tpe
.
decl
(
name
)
/** Retrieve the constructor Symbol for the passes <code>cs</code> ClassSymbol. */
private
def
constructorDecl
(
cs
:
ClassSymbol
)
=
symDecl
(
cs
,
nme
.
CONSTRUCTOR
)
/**
* <p>
* Take a method <code>name</code> and return the associated module method's symbol.
* </p>
* <p>
* Note: if module does not contain a method named </code>name</code>, the
* returned symbol will be a <code>NoSymbol</code>.
* </p>
*
* @param name A name of the method that should be part of the declared members of the module.
* @return The symbol for the method 'module.name' or <code>NoSymbol</code> if the module does
* not have a member named <code>name</code>.
*/
protected
def
modDecl
(
method
:
String
)
=
symDecl
(
moduleSym
,
method
)
protected
def
modDecl
(
method
:
String
)
=
symDecl
(
moduleSym
,
method
)
/**
* <p>
* Take a method <code>name</code> and return the associated (module's) companion class method's symbol.
* </p>
* <p>
* Note: if class does not contain a method named </code>name</code>, the
* returned symbol will be a <code>NoSymbol</code>.
* </p>
*
* @param name A name of the method that should be part of the declared members of the class.
* @return The symbol for the method 'class.name' or <code>NoSymbol</code> if the class does
* not have a member named <code>name</code>.
*/
protected
def
classDecl
(
method
:
String
)
=
symDecl
(
classSym
,
method
)
protected
def
classDecl
(
method
:
String
)
=
symDecl
(
classSym
,
method
)
/**
protected
def
select
(
instance
:
Symbol
,
method
:
String
)
:
Select
=
* <p>
* Take an <code>instance</code> symbol and a <code>method</code> name and return
* valid Scala Tree node of the form 'instance.method'.
* </p>
* <p>
* The precondition for this method to execute is that the <code>instance</code> Symbol
* contains in its members the selected <code>method</code>, otherwise calling this routine
* will throw an exception.
* </p>
*
* @param instance The Symbol for the instance whose <code>method</code> is selected.
* @param method The name of the selected method.
* @return A Scala valid Select Tree node of the form 'instance.method'.
*
*/
protected
def
select
(
instance
:
Symbol
,
method
:
String
)
:
Select
=
{
require
(
instance
.
tpe
.
decl
(
method
)
!=
NoSymbol
)
Select
(
Ident
(
instance
),
symDecl
(
instance
,
method
))
Select
(
Ident
(
instance
),
symDecl
(
instance
,
method
))
}
protected
def
apply
(
lhs
:
Tree
,
rhs
:
Tree
)
:
Apply
=
/**
apply
(
lhs
,
List
(
rhs
))
* <p>
* Apply <code>arg</code> to the passed <code>method</code> contained in the
* <code>moduleSym</code> module and return a valid Scala Tree node of the
* form 'module.method(arg)'.
* </p>
* <p>
* The precondition for this method to execute is that the module Symbol
* contains in its members the passed <code>method</code>, otherwise calling
* this routine will throw an exception.
* </p>
*
* @param method The name of the selected method.
* @args The arguments to which the <code>method</code> is applied to.
* @return A Scala valid Apply Tree node of the form 'moduleSym.method(arg)'.
*
*/
protected
def
moduleApply
(
method
:
String
,
args
:
List
[
Tree
])
:
Apply
=
apply
(
select
(
moduleSym
,
method
),
args
)
/** Calls <code>moduleApply</code> and wraps the passed <code>arg</code> into a
* List, i.e., moduleApply(method, List(arg).*/
protected
def
moduleApply
(
method
:
String
,
arg
:
Tree
)
:
Apply
=
moduleApply
(
method
,
List
(
arg
))
/**
* <p>
* Generic apply. Applies <code>select</code> to the passed list of <code>arguments</code>.
* and return a valid Scala Tree Apply Node of the form 'select(arg1,arg2,...,argN)'.
* </p>
* <p>
* Note: No check is performed to ensure that <code>select</code> can accept
* the passed list of <code>arguments</code>
* </p>
*
* @param select The left hand side of the application.
* @param arguments The arguments of the application.
* @return A Scala valid Apply Tree node of the form 'select(arg1, arg32, ..., argN)'
*/
protected
def
apply
(
select
:
Tree
,
arguments
:
List
[
Tree
])
:
Apply
=
Apply
(
select
,
arguments
)
protected
def
apply
(
lhs
:
Tree
,
rhs
:
List
[
Tree
])
:
Apply
=
/** Calls <code>apply</code> and wraps the passed <code>arg</code> into a List,
Apply
(
lhs
,
rhs
)
* i.e., apply(select, List(arg)). */
protected
def
apply
(
select
:
Tree
,
argument
:
Tree
)
:
Apply
=
apply
(
select
,
List
(
argument
))
}
}
...
@@ -62,7 +164,7 @@ trait ScalaCheck extends FreshNameCreator {
...
@@ -62,7 +164,7 @@ trait ScalaCheck extends FreshNameCreator {
* typer phase (this usually means that the typer has to be called explictly,
* typer phase (this usually means that the typer has to be called explictly,
* so it is the developer duty to ensure that this happen at some point).
* so it is the developer duty to ensure that this happen at some point).
*/
*/
def
value
(
rhs
:
Tree
)
:
Tree
=
apply
(
select
(
moduleSym
,
"value"
)
,
rhs
)
def
value
(
rhs
:
Tree
)
:
Tree
=
moduleApply
(
"value"
,
rhs
)
/**
/**
...
@@ -72,10 +174,10 @@ trait ScalaCheck extends FreshNameCreator {
...
@@ -72,10 +174,10 @@ trait ScalaCheck extends FreshNameCreator {
* so it is the developer duty to ensure that this happen at some point).
* so it is the developer duty to ensure that this happen at some point).
*/
*/
def
oneOf
(
generators
:
List
[
Symbol
])
:
Tree
=
def
oneOf
(
generators
:
List
[
Symbol
])
:
Tree
=
apply
(
select
(
moduleSym
,
"oneOf"
)
,
generators
.
map
(
Ident
(
_
)))
moduleApply
(
"oneOf"
,
generators
.
map
(
Ident
(
_
)))
def
lzy
(
generator
:
Tree
)
:
Tree
=
apply
(
select
(
moduleSym
,
"lzy"
)
,
generator
)
def
lzy
(
generator
:
Tree
)
:
Tree
=
moduleApply
(
"lzy"
,
generator
)
/**
/**
* This creates a Tree node for the call <code>org.scalacheck.Gen.flatMap[T](body)</code>,
* This creates a Tree node for the call <code>org.scalacheck.Gen.flatMap[T](body)</code>,
...
@@ -364,7 +466,7 @@ trait ScalaCheck extends FreshNameCreator {
...
@@ -364,7 +466,7 @@ trait ScalaCheck extends FreshNameCreator {
* typer phase (this usually means that the typer has to be called explictly,
* typer phase (this usually means that the typer has to be called explictly,
* so it is the developer duty to ensure that this happen at some point).
* so it is the developer duty to ensure that this happen at some point).
*/
*/
def
apply
(
generator
:
Tree
)
:
Tree
=
apply
(
select
(
moduleSym
,
"apply"
)
,
generator
)
def
apply
(
generator
:
Tree
)
:
Tree
=
moduleApply
(
"apply"
,
generator
)
def
arbitrary
(
tpe
:
Type
)
:
Tree
=
tpe2arbApp
.
get
(
tpe
)
match
{
def
arbitrary
(
tpe
:
Type
)
:
Tree
=
tpe2arbApp
.
get
(
tpe
)
match
{
case
Some
(
arbTree
)
=>
arbTree
case
Some
(
arbTree
)
=>
arbTree
...
@@ -441,18 +543,11 @@ trait ScalaCheck extends FreshNameCreator {
...
@@ -441,18 +543,11 @@ trait ScalaCheck extends FreshNameCreator {
}
}
}
}
object
Prop
{
object
Prop
extends
GenericScalaCheckModule
{
private
lazy
val
modulePropSym
:
Symbol
=
definitions
.
getModule
(
"org.scalacheck.Prop"
)
/** Symbol for the <code>org.scalacheck.Prop</code> module definition. */
override
protected
lazy
val
moduleSym
=
definitions
.
getModule
(
"org.scalacheck.Prop"
)
/** Transform string name in method symbols from the <code>symDecl</code>
* class symbol.
*/
private
def
decl
(
name
:
String
)
=
modulePropSym
.
tpe
.
decl
(
name
)
private
def
moduleApply
(
method
:
String
,
args
:
List
[
Tree
])
:
Apply
=
Apply
(
Select
(
Ident
(
modulePropSym
),
decl
(
method
)),
args
)
def
forAll
(
props
:
List
[
Tree
])
:
Apply
=
def
forAll
(
props
:
List
[
Tree
])
:
Apply
=
moduleApply
(
"forAll"
,
props
)
moduleApply
(
"forAll"
,
props
)
...
@@ -464,111 +559,109 @@ trait ScalaCheck extends FreshNameCreator {
...
@@ -464,111 +559,109 @@ trait ScalaCheck extends FreshNameCreator {
}
}
object
Shrink
{
object
Shrink
extends
GenericScalaCheckModule
{
private
def
select
(
instance
:
Symbol
,
method
:
String
)
:
Select
=
Select
(
Ident
(
instance
),
symDecl
(
instance
,
method
))
/** Symbol for the <code>org.scalacheck.Shrink</code> module definition. */
/** Symbol for the <code>org.scalacheck.Shrink</code> module definition. */
private
val
moduleS
hrinkS
ym
=
definitions
.
getModule
(
"org.scalacheck.Shrink"
)
override
protected
lazy
val
moduleSym
=
definitions
.
getModule
(
"org.scalacheck.Shrink"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkInt</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkInt</code> method definition. */
private
val
shrinkInt
=
select
(
moduleS
hrinkS
ym
,
"shrinkInt"
)
private
val
shrinkInt
=
select
(
moduleSym
,
"shrinkInt"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkString</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkString</code> method definition. */
private
val
shrinkString
=
select
(
moduleS
hrinkS
ym
,
"shrinkString"
)
private
val
shrinkString
=
select
(
moduleSym
,
"shrinkString"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkOption</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkOption</code> method definition. */
private
val
shrinkOption
=
select
(
moduleS
hrinkS
ym
,
"shrinkOption"
)
private
val
shrinkOption
=
select
(
moduleSym
,
"shrinkOption"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkList</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkList</code> method definition. */
private
val
shrinkList
=
select
(
moduleS
hrinkS
ym
,
"shrinkList"
)
private
val
shrinkList
=
select
(
moduleSym
,
"shrinkList"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkSet</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkSet</code> method definition. */
private
val
shrinkArray
=
select
(
moduleS
hrinkS
ym
,
"shrinkArray"
)
private
val
shrinkArray
=
select
(
moduleSym
,
"shrinkArray"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkSet</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkSet</code> method definition. */
private
val
shrinkSet
=
select
(
moduleS
hrinkS
ym
,
"shrinkSet"
)
private
val
shrinkSet
=
select
(
moduleSym
,
"shrinkSet"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple2</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple2</code> method definition. */
private
val
shrinkTuple2
=
select
(
moduleS
hrinkS
ym
,
"shrinkTuple2"
)
private
val
shrinkTuple2
=
select
(
moduleSym
,
"shrinkTuple2"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple3</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple3</code> method definition. */
private
val
shrinkTuple3
=
select
(
moduleS
hrinkS
ym
,
"shrinkTuple3"
)
private
val
shrinkTuple3
=
select
(
moduleSym
,
"shrinkTuple3"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple4</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple4</code> method definition. */
private
val
shrinkTuple4
=
select
(
moduleS
hrinkS
ym
,
"shrinkTuple4"
)
private
val
shrinkTuple4
=
select
(
moduleSym
,
"shrinkTuple4"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple5</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple5</code> method definition. */
private
val
shrinkTuple5
=
select
(
moduleS
hrinkS
ym
,
"shrinkTuple5"
)
private
val
shrinkTuple5
=
select
(
moduleSym
,
"shrinkTuple5"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple6</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple6</code> method definition. */
private
val
shrinkTuple6
=
select
(
moduleS
hrinkS
ym
,
"shrinkTuple6"
)
private
val
shrinkTuple6
=
select
(
moduleSym
,
"shrinkTuple6"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple7</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple7</code> method definition. */
private
val
shrinkTuple7
=
select
(
moduleS
hrinkS
ym
,
"shrinkTuple7"
)
private
val
shrinkTuple7
=
select
(
moduleSym
,
"shrinkTuple7"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple8</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple8</code> method definition. */
private
val
shrinkTuple8
=
select
(
moduleS
hrinkS
ym
,
"shrinkTuple8"
)
private
val
shrinkTuple8
=
select
(
moduleSym
,
"shrinkTuple8"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple9</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkTuple9</code> method definition. */
private
val
shrinkTuple9
=
select
(
moduleS
hrinkS
ym
,
"shrinkTuple9"
)
private
val
shrinkTuple9
=
select
(
moduleSym
,
"shrinkTuple9"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntList</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntList</code> method definition. */
private
val
shrinkIntList
=
select
(
moduleS
hrinkS
ym
,
"shrinkIntList"
)
private
val
shrinkIntList
=
select
(
moduleSym
,
"shrinkIntList"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanList</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanList</code> method definition. */
private
val
shrinkBooleanList
=
select
(
moduleS
hrinkS
ym
,
"shrinkBooleanList"
)
private
val
shrinkBooleanList
=
select
(
moduleSym
,
"shrinkBooleanList"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleList</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleList</code> method definition. */
private
val
shrinkDoubleList
=
select
(
moduleS
hrinkS
ym
,
"shrinkDoubleList"
)
private
val
shrinkDoubleList
=
select
(
moduleSym
,
"shrinkDoubleList"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringList</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringList</code> method definition. */
private
val
shrinkStringList
=
select
(
moduleS
hrinkS
ym
,
"shrinkStringList"
)
private
val
shrinkStringList
=
select
(
moduleSym
,
"shrinkStringList"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntArray</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntArray</code> method definition. */
private
val
shrinkIntArray
=
select
(
moduleS
hrinkS
ym
,
"shrinkIntArray"
)
private
val
shrinkIntArray
=
select
(
moduleSym
,
"shrinkIntArray"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanArray</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanArray</code> method definition. */
private
val
shrinkBooleanArray
=
select
(
moduleS
hrinkS
ym
,
"shrinkBooleanArray"
)
private
val
shrinkBooleanArray
=
select
(
moduleSym
,
"shrinkBooleanArray"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleArray</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleArray</code> method definition. */
private
val
shrinkDoubleArray
=
select
(
moduleS
hrinkS
ym
,
"shrinkDoubleArray"
)
private
val
shrinkDoubleArray
=
select
(
moduleSym
,
"shrinkDoubleArray"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringArray</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringArray</code> method definition. */
private
val
shrinkStringArray
=
select
(
moduleS
hrinkS
ym
,
"shrinkStringArray"
)
private
val
shrinkStringArray
=
select
(
moduleSym
,
"shrinkStringArray"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntSet</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntSet</code> method definition. */
private
val
shrinkIntSet
=
select
(
moduleS
hrinkS
ym
,
"shrinkIntSet"
)
private
val
shrinkIntSet
=
select
(
moduleSym
,
"shrinkIntSet"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanSet</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanSet</code> method definition. */
private
val
shrinkBooleanSet
=
select
(
moduleS
hrinkS
ym
,
"shrinkBooleanSet"
)
private
val
shrinkBooleanSet
=
select
(
moduleSym
,
"shrinkBooleanSet"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleSet</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleSet</code> method definition. */
private
val
shrinkDoubleSet
=
select
(
moduleS
hrinkS
ym
,
"shrinkDoubleSet"
)
private
val
shrinkDoubleSet
=
select
(
moduleSym
,
"shrinkDoubleSet"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringSet</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringSet</code> method definition. */
private
val
shrinkStringSet
=
select
(
moduleS
hrinkS
ym
,
"shrinkStringSet"
)
private
val
shrinkStringSet
=
select
(
moduleSym
,
"shrinkStringSet"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntOption</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntOption</code> method definition. */
private
val
shrinkIntOption
=
select
(
moduleS
hrinkS
ym
,
"shrinkIntOption"
)
private
val
shrinkIntOption
=
select
(
moduleSym
,
"shrinkIntOption"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanOption</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanOption</code> method definition. */
private
val
shrinkBooleanOption
=
select
(
moduleS
hrinkS
ym
,
"shrinkBooleanOption"
)
private
val
shrinkBooleanOption
=
select
(
moduleSym
,
"shrinkBooleanOption"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleOption</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleOption</code> method definition. */
private
val
shrinkDoubleOption
=
select
(
moduleS
hrinkS
ym
,
"shrinkDoubleOption"
)
private
val
shrinkDoubleOption
=
select
(
moduleSym
,
"shrinkDoubleOption"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringOption</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringOption</code> method definition. */
private
val
shrinkStringOption
=
select
(
moduleS
hrinkS
ym
,
"shrinkStringOption"
)
private
val
shrinkStringOption
=
select
(
moduleSym
,
"shrinkStringOption"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntTuple2</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntTuple2</code> method definition. */
private
val
shrinkIntTuple2
=
select
(
moduleS
hrinkS
ym
,
"shrinkIntTuple2"
)
private
val
shrinkIntTuple2
=
select
(
moduleSym
,
"shrinkIntTuple2"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanTuple2</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanTuple2</code> method definition. */
private
val
shrinkBooleanTuple2
=
select
(
moduleS
hrinkS
ym
,
"shrinkBooleanTuple2"
)
private
val
shrinkBooleanTuple2
=
select
(
moduleSym
,
"shrinkBooleanTuple2"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleTuple2</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleTuple2</code> method definition. */
private
val
shrinkDoubleTuple2
=
select
(
moduleS
hrinkS
ym
,
"shrinkDoubleTuple2"
)
private
val
shrinkDoubleTuple2
=
select
(
moduleSym
,
"shrinkDoubleTuple2"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringTuple2</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringTuple2</code> method definition. */
private
val
shrinkStringTuple2
=
select
(
moduleS
hrinkS
ym
,
"shrinkStringTuple2"
)
private
val
shrinkStringTuple2
=
select
(
moduleSym
,
"shrinkStringTuple2"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntTuple3</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntTuple3</code> method definition. */
private
val
shrinkIntTuple3
=
select
(
moduleS
hrinkS
ym
,
"shrinkIntTuple3"
)
private
val
shrinkIntTuple3
=
select
(
moduleSym
,
"shrinkIntTuple3"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanTuple3</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanTuple3</code> method definition. */
private
val
shrinkBooleanTuple3
=
select
(
moduleS
hrinkS
ym
,
"shrinkBooleanTuple3"
)
private
val
shrinkBooleanTuple3
=
select
(
moduleSym
,
"shrinkBooleanTuple3"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleTuple3</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleTuple3</code> method definition. */
private
val
shrinkDoubleTuple3
=
select
(
moduleS
hrinkS
ym
,
"shrinkDoubleTuple3"
)
private
val
shrinkDoubleTuple3
=
select
(
moduleSym
,
"shrinkDoubleTuple3"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringTuple3</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringTuple3</code> method definition. */
private
val
shrinkStringTuple3
=
select
(
moduleS
hrinkS
ym
,
"shrinkStringTuple3"
)
private
val
shrinkStringTuple3
=
select
(
moduleSym
,
"shrinkStringTuple3"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntTuple4</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkIntTuple4</code> method definition. */
private
val
shrinkIntTuple4
=
select
(
moduleS
hrinkS
ym
,
"shrinkIntTuple4"
)
private
val
shrinkIntTuple4
=
select
(
moduleSym
,
"shrinkIntTuple4"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanTuple4</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkBooleanTuple4</code> method definition. */
private
val
shrinkBooleanTuple4
=
select
(
moduleS
hrinkS
ym
,
"shrinkBooleanTuple4"
)
private
val
shrinkBooleanTuple4
=
select
(
moduleSym
,
"shrinkBooleanTuple4"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleTuple4</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkDoubleTuple4</code> method definition. */
private
val
shrinkDoubleTuple4
=
select
(
moduleS
hrinkS
ym
,
"shrinkDoubleTuple4"
)
private
val
shrinkDoubleTuple4
=
select
(
moduleSym
,
"shrinkDoubleTuple4"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringTuple4</code> method definition. */
/** Symbol for the <code>org.scalacheck.Shrink.shrinkStringTuple4</code> method definition. */
private
val
shrinkStringTuple4
=
select
(
moduleS
hrinkS
ym
,
"shrinkStringTuple4"
)
private
val
shrinkStringTuple4
=
select
(
moduleSym
,
"shrinkStringTuple4"
)
/** Symbol for the <code>org.scalacheck.Shrink.shrinkAny</code> method definition.
/** Symbol for the <code>org.scalacheck.Shrink.shrinkAny</code> method definition.
* This is a generic shrinker which does not shrink whatever object is passed to it.
* This is a generic shrinker which does not shrink whatever object is passed to it.
*/
*/
private
val
shrinkAny
=
select
(
moduleS
hrinkS
ym
,
"shrinkAny"
)
private
val
shrinkAny
=
select
(
moduleSym
,
"shrinkAny"
)
def
shrinker
(
tpe
:
Type
)
:
Select
=
tpe2shrinker
.
getOrElse
(
tpe
,
shrinkAny
)
def
shrinker
(
tpe
:
Type
)
:
Select
=
tpe2shrinker
.
getOrElse
(
tpe
,
shrinkAny
)
...
@@ -668,21 +761,20 @@ trait ScalaCheck extends FreshNameCreator {
...
@@ -668,21 +761,20 @@ trait ScalaCheck extends FreshNameCreator {
}
}
object
ConsoleReporter
{
object
ConsoleReporter
extends
GenericScalaCheckModule
{
/** Symbol for the <code>org.scalacheck.ConsoleReporter</code> module definition. */
/** Symbol for the <code>org.scalacheck.ConsoleReporter</code> module definition. */
private
val
moduleConsoleReporter
Sym
=
definitions
.
getModule
(
"org.scalacheck.ConsoleReporter"
)
override
protected
lazy
val
module
Sym
=
definitions
.
getModule
(
"org.scalacheck.ConsoleReporter"
)
def
testStatsEx
(
testRes
:
Tree
)
:
Tree
=
testStatsEx
(
""
,
testRes
)
def
testStatsEx
(
testRes
:
Tree
)
:
Tree
=
testStatsEx
(
""
,
testRes
)
def
testStatsEx
(
msg
:
String
,
testRes
:
Tree
)
:
Tree
=
def
testStatsEx
(
msg
:
String
,
testRes
:
Tree
)
:
Tree
=
Apply
(
S
elect
(
Ident
(
module
ConsoleReporterSym
),
symDecl
(
moduleConsoleReporter
Sym
,
"testStatsEx"
)
)
,
List
(
Literal
(
msg
),
testRes
))
Apply
(
s
elect
(
moduleSym
,
"testStatsEx"
),
List
(
Literal
(
msg
),
testRes
))
}
}
object
Test
{
object
Test
extends
GenericScalaCheckModule
{
/** Symbol for the <code>org.scalacheck.Test</code> module definition. */
/** Symbol for the <code>org.scalacheck.Test</code> module definition. */
private
val
module
Test
Sym
=
definitions
.
getModule
(
"org.scalacheck.Test"
)
override
protected
lazy
val
moduleSym
=
definitions
.
getModule
(
"org.scalacheck.Test"
)
def
check
(
prop
:
Tree
)
:
Tree
=
def
check
(
prop
:
Tree
)
:
Tree
=
moduleApply
(
"check"
,
prop
)
Apply
(
Select
(
Ident
(
moduleTestSym
),
symDecl
(
moduleTestSym
,
"check"
)),
List
(
prop
))
}
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment