Last active
January 1, 2016 17:59
-
-
Save arturaz/8180793 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.tinylabproductions.quazibuild.server.actor.live_game.model | |
import org.scalatest.{Matchers, FunSpec} | |
import org.scalatest.prop.PropertyChecks | |
import org.scalautils.TypeCheckedTripleEquals | |
import org.scalacheck.Gen | |
import org.scalacheck.Arbitrary.arbitrary | |
import com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.{RandomBehaviour, BackSlashBehaviour, SlashBehaviour} | |
import support.ExtraMatchers | |
/** | |
* Created by arturas on 13.12.16. | |
*/ | |
class DroidTest extends FunSpec with Matchers with PropertyChecks | |
with TypeCheckedTripleEquals with ExtraMatchers { | |
describe("Behaviour") { | |
def positionGen(boundaries: Field.Boundaries) = for { | |
x <- Gen.choose(0, boundaries.width - 1) | |
y <- Gen.choose(0, boundaries.height - 1) | |
} yield Field.Position(x, y) | |
describe("creation") { | |
val boundariesGen = for { | |
w <- Gen.choose(1, Int.MaxValue) | |
h <- Gen.choose(1, Int.MaxValue) | |
} yield Field.Boundaries(w, h) | |
val boundariesWithPositionGen = for { | |
boundaries <- boundariesGen | |
position <- positionGen(boundaries) | |
} yield (boundaries, position) | |
describe("slash") { | |
it("should return None if we're in top-left corner") { | |
forAll(boundariesGen) { boundaries => | |
val position = Field.Position(0, boundaries.height - 1) | |
Droid.SlashBehaviour(position, boundaries) shouldBe None | |
} | |
} | |
it("should return None if we're in bottom-right corner") { | |
forAll(boundariesGen) { boundaries => | |
val position = Field.Position(boundaries.width - 1, 0) | |
Droid.SlashBehaviour(position, boundaries) shouldBe None | |
} | |
} | |
it("should return Some otherwise") { | |
forAll(boundariesWithPositionGen) { case (boundaries, position) => | |
whenever( | |
! boundaries.isTopLeftCorner(position) && | |
! boundaries.isBottomRightCorner(position) | |
) { | |
Droid.SlashBehaviour(position, boundaries) shouldBe an [Some[_]] | |
} | |
} | |
} | |
} | |
describe("backslash") { | |
it("should return None if we're in top-right corner") { | |
forAll(boundariesGen) { boundaries => | |
val position = Field.Position( | |
boundaries.width - 1, boundaries.height - 1 | |
) | |
Droid.BackSlashBehaviour(position, boundaries) shouldBe None | |
} | |
} | |
it("should return None if we're in bottom-left corner") { | |
forAll(boundariesGen) { boundaries => | |
val position = Field.Position(0, 0) | |
Droid.BackSlashBehaviour(position, boundaries) shouldBe None | |
} | |
} | |
it("should return Some otherwise") { | |
forAll(boundariesWithPositionGen) { case (boundaries, position) => | |
whenever( | |
! boundaries.isTopRightCorner(position) && | |
! boundaries.isBottomLeftCorner(position) | |
) { | |
Droid.BackSlashBehaviour(position, boundaries) shouldBe an | |
[Some[_]] | |
} | |
} | |
} | |
} | |
} | |
describe("moving") { | |
val (w, h) = (10, 15) | |
val boundaries = Field.Boundaries(w, h) | |
val players = Seq.empty[Field.Position] | |
describe("slash") { | |
it("should move correctly in top-right corner") { | |
val p = Field.Position(w - 1, h - 1) | |
assert(boundaries.isTopRightCorner(p)) | |
SlashBehaviour(p, boundaries).get. | |
nextPosition(p, boundaries, players) shouldBe | |
Field.Position(w - 2, h - 2) | |
} | |
it("should move correctly in bottom-left corner") { | |
val p = Field.Position(0, 0) | |
assert(boundaries.isBottomLeftCorner(p)) | |
SlashBehaviour(p, boundaries).get. | |
nextPosition(p, boundaries, players) shouldBe Field.Position(1, 1) | |
} | |
it("should move correctly anywhere in the field") { | |
forAll(positionGen(boundaries)) { p => | |
val b = SlashBehaviour(p, boundaries) | |
whenever(b.isDefined) { | |
Seq( | |
Field.Position(p.x - 1, p.y - 1), | |
Field.Position(p.x + 1, p.y + 1) | |
) should contain(b.get.nextPosition(p, boundaries, players)) | |
} | |
} | |
} | |
} | |
describe("backslash") { | |
it("should move correctly in top-left corner") { | |
val p = Field.Position(0, h - 1) | |
assert(boundaries.isTopLeftCorner(p)) | |
BackSlashBehaviour(p, boundaries).get. | |
nextPosition(p, boundaries, players) shouldBe | |
Field.Position(1, h - 2) | |
} | |
it("should move correctly in bottom-right corner") { | |
val p = Field.Position(w - 1, 0) | |
assert(boundaries.isBottomRightCorner(p)) | |
BackSlashBehaviour(p, boundaries).get. | |
nextPosition(p, boundaries, players) shouldBe | |
Field.Position(w - 2, 1) | |
} | |
it("should move correctly anywhere in the field") { | |
forAll(positionGen(boundaries)) { p => | |
val b = BackSlashBehaviour(p, boundaries) | |
whenever(b.isDefined) { | |
Seq( | |
Field.Position(p.x - 1, p.y + 1), | |
Field.Position(p.x + 1, p.y - 1) | |
) should contain(b.get.nextPosition(p, boundaries, players)) | |
} | |
} | |
} | |
} | |
describe("random") { | |
it("should never go out of field") { | |
val b = RandomBehaviour | |
forAll(positionGen(boundaries)) { p => | |
boundaries should contain (b.nextPosition(p, boundaries, players)) | |
} | |
} | |
it("should always move exactly 1 tile") { | |
val b = RandomBehaviour | |
forAll(positionGen(boundaries)) { p => | |
val next = b.nextPosition(p, boundaries, players) | |
// assert(next.tileDistanceTo(p) === 1, s"this: $p, next: $next") | |
assert(next.tileDistanceTo(p) === 1, "") // BOOM | |
} | |
} | |
} | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading /c/Program Files (x86)/sbt/bin/sbt-launch-lib.bash | |
[info] Loading project definition from C:\work\quazibuild\server\project | |
[info] Set current project to Quazibuild Server (in build file:/C:/work/quazibuild/server/) | |
[info] Compiling 1 Scala source to C:\work\quazibuild\server\target\scala-2.10\test-classes... | |
[info] ======= Position error | |
[info] Synthetic tree [3029] contains nonsynthetic tree [3012] | |
[info] == Enclosing tree [3029] of type Apply at [5972]DroidTest.scala | |
[info] | |
[info] [L 170 ] #3029 [5972] Apply // Apply(method apply) | |
[info] | |
[info] == Enclosed tree [3012] of type Literal at [6003:6005]DroidTest.scala | |
[info] | |
[info] [L 170 ] #3012 [6003:6005] Literal // "") | |
[info] | |
[info] | |
[info] While validating #3060 | |
[info] [L 1 ] #3060 [0:6048] PackageDef // model | |
[info] | |
[info] Children: | |
[info] [L 1 P# 3060] #49 [8:70] Select // model | |
[info] [L 3 P# 3060] #52 [72:112] Import // org.scalatest.{Matchers, FunSpec} | |
[info] [L 4 P# 3060] #56 [113:153] Import // org.scalatest.prop.PropertyChecks | |
[info] [L 5 P# 3060] #59 [154:199] Import // org.scalautils.TypeCheckedTripleEquals | |
[info] [L 6 P# 3060] #62 [200:225] Import // org.scalacheck.Gen | |
[info] [L 7 P# 3060] #66 [226:267] Import // org.scalacheck.Arbitrary.arbitrary | |
[info] [L 8 P# 3060] #75 [268:397] Import // com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.{RandomBehaviour, BackSlashBehaviour, SlashBehaviour} | |
[info] [L 9 P# 3060] #77 [398:426] Import // support.ExtraMatchers | |
[info] [L 14 P# 3060] #3059 [471:6048] ClassDef // DroidTest extends FunSpec with Matchers with PropertyChecks | |
[info] ======= | |
[error] | |
[error] while compiling: C:\work\quazibuild\server\src\test\scala\com\tinylabproductions\quazibuild\server\actor\live_game\model\DroidTest.scala | |
[error] during phase: typer | |
[error] library version: version 2.10.3 | |
[error] compiler version: version 2.10.3 | |
[error] reconstructed args: -bootclasspath C:\Program Files (x86)\Java\jre7\lib\resources.jar;C:\Program Files (x86)\Java\jre7\lib\rt.jar;C:\Program Files (x86)\Java\jre7\lib\sunrsasign.jar;C:\Program Files (x86)\Java\jre7\lib\jsse.jar;C:\Program Files (x86)\Java\jre7\lib\jce.jar;C:\Program Files (x86)\Java\jre7\lib\charsets.jar;C:\Program Files (x86)\Java\jre7\lib\jfr.jar;C:\Program Files (x86)\Java\jre7\classes;C:\Users\arturas\.sbt\boot\scala-2.10.3\lib\scala-library.jar -P:continuations:enable -deprecation -Yrangepos -feature -Xplugin:C:\Users\arturas\.ivy2\cache\org.scala-lang.plugins\continuations\jars\continuations-2.10.3.jar -classpath C:\work\quazibuild\server\target\scala-2.10\test-classes;C:\work\quazibuild\server\target\scala-2.10\classes;C:\work\quazibuild\server\lib\scalabuff-runtime_2.10-1.3.7-SNAPSHOT.jar;C:\Users\arturas\.ivy2\cache\com.typesafe.akka\akka-actor_2.10\jars\akka-actor_2.10-2.2.1.jar;C:\Users\arturas\.ivy2\cache\com.typesafe\config\bundles\config-1.0.2.jar;C:\Users\arturas\.ivy2\cache\com.typesafe.akka\akka-channels-experimental_2.10\jars\akka-channels-experimental_2.10-2.2.1.jar;C:\Users\arturas\.ivy2\cache\org.scala-lang\scala-reflect\jars\scala-reflect-2.10.2.jar;C:\Users\arturas\.ivy2\cache\com.google.protobuf\protobuf-java\jars\protobuf-java-2.4.1.jar;C:\Users\arturas\.ivy2\cache\org.joda\joda-convert\jars\joda-convert-1.5.jar;C:\Users\arturas\.ivy2\cache\joda-time\joda-time\jars\joda-time-2.3.jar;C:\Users\arturas\.ivy2\cache\mysql\mysql-connector-java\jars\mysql-connector-java-5.1.26.jar;C:\Users\arturas\.ivy2\cache\com.typesafe.slick\slick_2.10\jars\slick_2.10-1.0.1.jar;C:\Users\arturas\.ivy2\cache\com.jolbox\bonecp\bundles\bonecp-0.8.0.RELEASE.jar;C:\Users\arturas\.ivy2\cache\com.google.guava\guava\bundles\guava-15.0.jar;C:\Users\arturas\.ivy2\cache\org.slf4j\slf4j-api\jars\slf4j-api-1.7.2.jar;C:\Users\arturas\.ivy2\cache\org.clapper\grizzled-scala_2.10\jars\grizzled-scala_2.10-1.1.4.jar;C:\Users\arturas\.ivy2\cache\jline\jline\jars\jline-2.6.jar;C:\Users\arturas\.ivy2\cache\com.typesafe.play\play-json_2.10\jars\play-json_2.10-2.2.1.jar;C:\Users\arturas\.ivy2\cache\com.typesafe.play\play-iteratees_2.10\jars\play-iteratees_2.10-2.2.1.jar;C:\Users\arturas\.ivy2\cache\org.scala-stm\scala-stm_2.10\jars\scala-stm_2.10-0.7.jar;C:\Users\arturas\.ivy2\cache\com.typesafe.play\play-functional_2.10\jars\play-functional_2.10-2.2.1.jar;C:\Users\arturas\.ivy2\cache\com.typesafe.play\play-datacommons_2.10\jars\play-datacommons_2.10-2.2.1.jar;C:\Users\arturas\.ivy2\cache\com.fasterxml.jackson.core\jackson-annotations\jars\jackson-annotations-2.2.2.jar;C:\Users\arturas\.ivy2\cache\com.fasterxml.jackson.core\jackson-core\jars\jackson-core-2.2.2.jar;C:\Users\arturas\.ivy2\cache\com.fasterxml.jackson.core\jackson-databind\jars\jackson-databind-2.2.2.jar;C:\Users\arturas\.ivy2\cache\net.databinder.dispatch\dispatch-core_2.10\jars\dispatch-core_2.10-0.11.0.jar;C:\Users\arturas\.ivy2\cache\com.ning\async-http-client\jars\async-http-client-1.7.16.jar;C:\Users\arturas\.ivy2\cache\io.netty\netty\bundles\netty-3.6.3.Final.jar;C:\Users\arturas\.ivy2\cache\org.scalatest\scalatest_2.10\jars\scalatest_2.10-2.0.jar;C:\Users\arturas\.ivy2\cache\org.scalacheck\scalacheck_2.10\jars\scalacheck_2.10-1.10.1.jar;C:\Users\arturas\.ivy2\cache\org.scala-tools.testing\test-interface\jars\test-interface-0.5.jar;C:\Users\arturas\.ivy2\cache\org.scala-lang\scala-actors\jars\scala-actors-2.10.1.jar;C:\Users\arturas\.ivy2\cache\com.typesafe.akka\akka-testkit_2.10\bundles\akka-testkit_2.10-2.2.1.jar -d C:\work\quazibuild\server\target\scala-2.10\test-classes | |
[error] | |
[error] last tree to typer: TypeApply(method shrinkAny) | |
[error] symbol: method shrinkAny in object Shrink (flags: <method> implicit <triedcooking>) | |
[error] symbol definition: implicit def shrinkAny[T]: org.scalacheck.Shrink[T] | |
[error] tpe: org.scalacheck.Shrink[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] symbol owners: method shrinkAny -> object Shrink -> package scalacheck | |
[error] context owners: value <local DroidTest> -> class DroidTest -> package model | |
[error] | |
[error] == Enclosing template or block == | |
[error] | |
[error] Template( // val <local DroidTest>: <notype> in class DroidTest | |
[error] "FunSpec", "Matchers", "PropertyChecks", "TypeCheckedTripleEquals", "ExtraMatchers" // parents | |
[error] ValDef( | |
[error] private | |
[error] "_" | |
[error] <tpt> | |
[error] <empty> | |
[error] ) | |
[error] // 2 statements | |
[error] DefDef( // def <init>(): com.tinylabproductions.quazibuild.server.actor.live_game.model.DroidTest in class DroidTest | |
[error] <method> | |
[error] "<init>" | |
[error] [] | |
[error] List(Nil) | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.DroidTest | |
[error] Block( // tree.tpe=Unit | |
[error] Apply( // def <init>(): org.scalatest.FunSpec in class FunSpec, tree.tpe=org.scalatest.FunSpec | |
[error] DroidTest.super."<init>" // def <init>(): org.scalatest.FunSpec in class FunSpec, tree.tpe=()org.scalatest.FunSpec | |
[error] Nil | |
[error] ) | |
[error] () | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "describe" | |
[error] "Behaviour" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] DefDef( // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] <method> <triedcooking> | |
[error] "positionGen" | |
[error] [] | |
[error] // 1 parameter list | |
[error] ValDef( // boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <param> <triedcooking> | |
[error] "boundaries" | |
[error] "Field"."Boundaries" // case class Boundaries extends Product with Serializable in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <empty> | |
[error] ) | |
[error] <tpt> // tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] Apply( | |
[error] Gen.choose(0, boundaries.width.-(1))."flatMap" | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // x: Int | |
[error] <param> <triedcooking> | |
[error] "x" | |
[error] <tpt> // tree.tpe=Int | |
[error] <empty> | |
[error] ) | |
[error] Apply( | |
[error] Gen.choose(0, boundaries.height.-(1))."map" | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // y: Int | |
[error] <param> <triedcooking> | |
[error] "y" | |
[error] <tpt> // tree.tpe=Int | |
[error] <empty> | |
[error] ) | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] "x" // x: Int, tree.tpe=Int | |
[error] "y" // y: Int, tree.tpe=Int | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "describe" | |
[error] "creation" | |
[error] ) | |
[error] Block( | |
[error] // 3 statements | |
[error] ValDef( // val boundariesGen: org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries] | |
[error] <triedcooking> | |
[error] "boundariesGen" | |
[error] <tpt> // tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries] | |
[error] Apply( | |
[error] Gen.choose(1, Int.MaxValue)."flatMap" | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // w: Int | |
[error] <param> <triedcooking> | |
[error] "w" | |
[error] <tpt> // tree.tpe=Int | |
[error] <empty> | |
[error] ) | |
[error] Apply( | |
[error] Gen.choose(1, Int.MaxValue)."map" | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // h: Int | |
[error] <param> <triedcooking> | |
[error] "h" | |
[error] <tpt> // tree.tpe=Int | |
[error] <empty> | |
[error] ) | |
[error] Apply( // object Boundaries in object Field | |
[error] "Field"."Boundaries" // object Boundaries in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries.type | |
[error] // 2 arguments | |
[error] "w" // w: Int, tree.tpe=Int | |
[error] "h" // h: Int, tree.tpe=Int | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ValDef( // val boundariesWithPositionGen: org.scalacheck.Gen[(com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)] | |
[error] <triedcooking> | |
[error] "boundariesWithPositionGen" | |
[error] <tpt> // tree.tpe=org.scalacheck.Gen[(com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)] | |
[error] Apply( // def flatMap[U](f: T => org.scalacheck.Gen[U]): org.scalacheck.Gen[U] in trait Gen | |
[error] "boundariesGen"."flatMap" // def flatMap[U](f: T => org.scalacheck.Gen[U]): org.scalacheck.Gen[U] in trait Gen, tree.tpe=[U](f: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries => org.scalacheck.Gen[U])org.scalacheck.Gen[U] | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <param> <triedcooking> | |
[error] "boundaries" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <empty> | |
[error] ) | |
[error] Apply( // def map[U](f: T => U): org.scalacheck.Gen[U] in trait Gen | |
[error] positionGen(boundaries)."map" // def map[U](f: T => U): org.scalacheck.Gen[U] in trait Gen, tree.tpe=[U](f: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position => U)org.scalacheck.Gen[U] | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // position: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <param> <triedcooking> | |
[error] "position" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <empty> | |
[error] ) | |
[error] Apply( // object Tuple2 in package scala | |
[error] "scala"."Tuple2" // object Tuple2 in package scala, tree.tpe=Tuple2.type | |
[error] // 2 arguments | |
[error] "boundaries" // boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] "position" // position: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "describe" | |
[error] "slash" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should return None if we\'re in top-left corner" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] "boundariesGen" // val boundariesGen: org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries], tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries] | |
[error] ) | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <param> <triedcooking> | |
[error] "boundaries" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <empty> | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val position: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "position" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] 0 | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "boundaries"."height"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 1 | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Droid.SlashBehaviour(position, boundaries)."shouldBe" | |
[error] "None" | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should return None if we\'re in bottom-right corner" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] "boundariesGen" // val boundariesGen: org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries], tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries] | |
[error] ) | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <param> <triedcooking> | |
[error] "boundaries" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <empty> | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val position: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "position" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "boundaries"."width"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 1 | |
[error] ) | |
[error] 0 | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Droid.SlashBehaviour(position, boundaries)."shouldBe" | |
[error] "None" | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should return Some otherwise" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] "boundariesWithPositionGen" // val boundariesWithPositionGen: org.scalacheck.Gen[(com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)], tree.tpe=org.scalacheck.Gen[(com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)] | |
[error] ) | |
[error] Match( | |
[error] <empty> | |
[error] CaseDef( | |
[error] Apply( // object Tuple2 in package scala | |
[error] "scala"."Tuple2" // object Tuple2 in package scala, tree.tpe=Tuple2.type | |
[error] // 2 arguments | |
[error] Bind( // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] "boundaries" | |
[error] "_" // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] ) | |
[error] Bind( // val position: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "position" | |
[error] "_" // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "whenever" | |
[error] Apply( // def &&(x: Boolean): Boolean in class Boolean, tree.tpe=Boolean | |
[error] boundaries.isTopLeftCorner(position)."unary_$bang"."$amp$amp" // def &&(x: Boolean): Boolean in class Boolean, tree.tpe=(x: Boolean)Boolean | |
[error] boundaries.isBottomRightCorner(position)."unary_$bang" // def unary_!: Boolean in class Boolean, tree.tpe=Boolean | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Droid.SlashBehaviour(position, boundaries)."shouldBe" | |
[error] TypeApply( | |
[error] "an" | |
[error] ExistentialTypeTree( | |
[error] AppliedTypeTree( | |
[error] "Some" | |
[error] "_$1" // type _$1, tree.tpe=_$1 | |
[error] ) | |
[error] List( | |
[error] TypeDef( // type _$1 | |
[error] <deferred> <synthetic> <existential/mixedin> | |
[error] "_$1" | |
[error] [] | |
[error] TypeBoundsTree( | |
[error] "_root_"."scala"."Nothing" // final abstract class Nothing extends Any in package scala, tree.tpe=Nothing | |
[error] "_root_"."scala"."Any" // abstract class Any extends in package scala, tree.tpe=Any | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "describe" | |
[error] "backslash" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should return None if we\'re in top-right corner" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] "boundariesGen" // val boundariesGen: org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries], tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries] | |
[error] ) | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <param> <triedcooking> | |
[error] "boundaries" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <empty> | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val position: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "position" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "boundaries"."width"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 1 | |
[error] ) | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "boundaries"."height"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 1 | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Droid.BackSlashBehaviour(position, boundaries)."shouldBe" | |
[error] "None" | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should return None if we\'re in bottom-left corner" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] "boundariesGen" // val boundariesGen: org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries], tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries] | |
[error] ) | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <param> <triedcooking> | |
[error] "boundaries" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <empty> | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val position: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "position" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] 0 | |
[error] 0 | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Droid.BackSlashBehaviour(position, boundaries)."shouldBe" | |
[error] "None" | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should return Some otherwise" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] "boundariesWithPositionGen" // val boundariesWithPositionGen: org.scalacheck.Gen[(com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)], tree.tpe=org.scalacheck.Gen[(com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)] | |
[error] ) | |
[error] Match( | |
[error] <empty> | |
[error] CaseDef( | |
[error] Apply( // object Tuple2 in package scala | |
[error] "scala"."Tuple2" // object Tuple2 in package scala, tree.tpe=Tuple2.type | |
[error] // 2 arguments | |
[error] Bind( // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] "boundaries" | |
[error] "_" // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] ) | |
[error] Bind( // val position: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "position" | |
[error] "_" // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "whenever" | |
[error] Apply( // def &&(x: Boolean): Boolean in class Boolean, tree.tpe=Boolean | |
[error] boundaries.isTopRightCorner(position)."unary_$bang"."$amp$amp" // def &&(x: Boolean): Boolean in class Boolean, tree.tpe=(x: Boolean)Boolean | |
[error] boundaries.isBottomLeftCorner(position)."unary_$bang" // def unary_!: Boolean in class Boolean, tree.tpe=Boolean | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Droid.BackSlashBehaviour(position, boundaries)."shouldBe" | |
[error] TypeApply( | |
[error] "an" | |
[error] ExistentialTypeTree( | |
[error] AppliedTypeTree( | |
[error] "Some" | |
[error] "_$2" // type _$2, tree.tpe=_$2 | |
[error] ) | |
[error] List( | |
[error] TypeDef( // type _$2 | |
[error] <deferred> <synthetic> <existential/mixedin> | |
[error] "_$2" | |
[error] [] | |
[error] TypeBoundsTree( | |
[error] "_root_"."scala"."Nothing" // final abstract class Nothing extends Any in package scala, tree.tpe=Nothing | |
[error] "_root_"."scala"."Any" // abstract class Any extends in package scala, tree.tpe=Any | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "describe" | |
[error] "moving" | |
[error] ) | |
[error] Block( | |
[error] // 7 statements | |
[error] ValDef( // private[this] val x$1: (Int, Int) | |
[error] private <local> <synthetic> <triedcooking> | |
[error] "x$1" | |
[error] <tpt> // tree.tpe=(Int, Int) | |
[error] Match( | |
[error] Annotated( | |
[error] Apply( // def <init>(): unchecked in class unchecked, tree.tpe=(Int, Int) @unchecked | |
[error] new scala.unchecked."<init>" // def <init>(): unchecked in class unchecked, tree.tpe=()unchecked | |
[error] Nil | |
[error] ) | |
[error] Apply( // object Tuple2 in package scala | |
[error] "scala"."Tuple2" // object Tuple2 in package scala, tree.tpe=Tuple2.type | |
[error] // 2 arguments | |
[error] 10 | |
[error] 15 | |
[error] ) | |
[error] ) | |
[error] CaseDef( | |
[error] Apply( // object Tuple2 in package scala | |
[error] "scala"."Tuple2" // object Tuple2 in package scala, tree.tpe=Tuple2.type | |
[error] // 2 arguments | |
[error] Bind( // val w: Int, tree.tpe=Int | |
[error] "w" | |
[error] "_" // tree.tpe=Int | |
[error] ) | |
[error] Bind( // val h: Int, tree.tpe=Int | |
[error] "h" | |
[error] "_" // tree.tpe=Int | |
[error] ) | |
[error] ) | |
[error] Apply( // object Tuple2 in package scala | |
[error] "scala"."Tuple2" // object Tuple2 in package scala, tree.tpe=Tuple2.type | |
[error] // 2 arguments | |
[error] "w" // val w: Int, tree.tpe=Int | |
[error] "h" // val h: Int, tree.tpe=Int | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ValDef( // val w: Int | |
[error] <triedcooking> | |
[error] "w" | |
[error] <tpt> // tree.tpe=Int | |
[error] "x$1"."_1" // val _1: T1 in class Tuple2, tree.tpe=Int | |
[error] ) | |
[error] ValDef( // val h: Int | |
[error] <triedcooking> | |
[error] "h" | |
[error] <tpt> // tree.tpe=Int | |
[error] "x$1"."_2" // val _2: T2 in class Tuple2, tree.tpe=Int | |
[error] ) | |
[error] ValDef( // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] <triedcooking> | |
[error] "boundaries" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] Apply( // object Boundaries in object Field | |
[error] "Field"."Boundaries" // object Boundaries in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries.type | |
[error] // 2 arguments | |
[error] "w" // val w: Int, tree.tpe=Int | |
[error] "h" // val h: Int, tree.tpe=Int | |
[error] ) | |
[error] ) | |
[error] ValDef( // val players: Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] <triedcooking> | |
[error] "players" | |
[error] <tpt> // tree.tpe=Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] TypeApply( | |
[error] "Seq"."empty" | |
[error] "Field"."Position" // case class Position extends Product with Serializable in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "describe" | |
[error] "slash" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should move correctly in top-right corner" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] ValDef( // val p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "p" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "w"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 1 | |
[error] ) | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "h"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 1 | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] "assert" | |
[error] Apply( // def isTopRightCorner(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position): Boolean in class Boundaries, tree.tpe=Boolean | |
[error] "boundaries"."isTopRightCorner" // def isTopRightCorner(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position): Boolean in class Boundaries, tree.tpe=(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)Boolean | |
[error] "p" // val p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] SlashBehaviour(p, boundaries).get.nextPosition(p, boundaries, players)."shouldBe" | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "w"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 2 | |
[error] ) | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "h"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 2 | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should move correctly in bottom-left corner" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] ValDef( // val p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "p" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] 0 | |
[error] 0 | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] "assert" | |
[error] Apply( // def isBottomLeftCorner(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position): Boolean in class Boundaries, tree.tpe=Boolean | |
[error] "boundaries"."isBottomLeftCorner" // def isBottomLeftCorner(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position): Boolean in class Boundaries, tree.tpe=(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)Boolean | |
[error] "p" // val p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] SlashBehaviour(p, boundaries).get.nextPosition(p, boundaries, players)."shouldBe" | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] 1 | |
[error] 1 | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should move correctly anywhere in the field" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] Apply( // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] "positionGen" // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries)org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] ) | |
[error] ) | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <param> <triedcooking> | |
[error] "p" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <empty> | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val b: Option[com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.SlashBehaviour] | |
[error] <triedcooking> | |
[error] "b" | |
[error] <tpt> // tree.tpe=Option[com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.SlashBehaviour] | |
[error] Apply( | |
[error] "SlashBehaviour" | |
[error] // 2 arguments | |
[error] "p" // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "whenever" | |
[error] "b"."isDefined" // def isDefined: Boolean in class Option, tree.tpe=Boolean | |
[error] ) | |
[error] Apply( | |
[error] Seq(Field.Position(p.x.-(1), p.y.-(1)), Field.Position(p.x.+(1), p.y.+(1)))."should" | |
[error] Apply( | |
[error] "contain" | |
[error] Apply( // def nextPosition(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position,boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries,players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position]): com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position in class PingPongBehaviour, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "b"."get"."nextPosition" // def nextPosition(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position,boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries,players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position]): com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position in class PingPongBehaviour, tree.tpe=(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position])com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] // 3 arguments | |
[error] "p" // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] "players" // val players: Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "describe" | |
[error] "backslash" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should move correctly in top-left corner" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] ValDef( // val p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "p" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] 0 | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "h"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 1 | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] "assert" | |
[error] Apply( // def isTopLeftCorner(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position): Boolean in class Boundaries, tree.tpe=Boolean | |
[error] "boundaries"."isTopLeftCorner" // def isTopLeftCorner(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position): Boolean in class Boundaries, tree.tpe=(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)Boolean | |
[error] "p" // val p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] BackSlashBehaviour(p, boundaries).get.nextPosition(p, boundaries, players)."shouldBe" | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] 1 | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "h"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 2 | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should move correctly in bottom-right corner" | |
[error] ) | |
[error] Block( | |
[error] // 2 statements | |
[error] ValDef( // val p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "p" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "w"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 1 | |
[error] ) | |
[error] 0 | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] "assert" | |
[error] Apply( // def isBottomRightCorner(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position): Boolean in class Boundaries, tree.tpe=Boolean | |
[error] "boundaries"."isBottomRightCorner" // def isBottomRightCorner(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position): Boolean in class Boundaries, tree.tpe=(pos: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position)Boolean | |
[error] "p" // val p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] BackSlashBehaviour(p, boundaries).get.nextPosition(p, boundaries, players)."shouldBe" | |
[error] Apply( // object Position in object Field | |
[error] "Field"."Position" // object Position in object Field, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position.type | |
[error] // 2 arguments | |
[error] Apply( // def -(x: Int): Int in class Int, tree.tpe=Int | |
[error] "w"."$minus" // def -(x: Int): Int in class Int, tree.tpe=(x: Int)Int | |
[error] 2 | |
[error] ) | |
[error] 1 | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should move correctly anywhere in the field" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] Apply( // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] "positionGen" // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries)org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] ) | |
[error] ) | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <param> <triedcooking> | |
[error] "p" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <empty> | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val b: Option[com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.BackSlashBehaviour] | |
[error] <triedcooking> | |
[error] "b" | |
[error] <tpt> // tree.tpe=Option[com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.BackSlashBehaviour] | |
[error] Apply( | |
[error] "BackSlashBehaviour" | |
[error] // 2 arguments | |
[error] "p" // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "whenever" | |
[error] "b"."isDefined" // def isDefined: Boolean in class Option, tree.tpe=Boolean | |
[error] ) | |
[error] Apply( | |
[error] Seq(Field.Position(p.x.-(1), p.y.+(1)), Field.Position(p.x.+(1), p.y.-(1)))."should" | |
[error] Apply( | |
[error] "contain" | |
[error] Apply( // def nextPosition(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position,boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries,players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position]): com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position in class PingPongBehaviour, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "b"."get"."nextPosition" // def nextPosition(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position,boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries,players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position]): com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position in class PingPongBehaviour, tree.tpe=(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position])com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] // 3 arguments | |
[error] "p" // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] "players" // val players: Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "describe" | |
[error] "random" | |
[error] ) | |
[error] Block( | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should never go out of field" | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val b: com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.RandomBehaviour.type | |
[error] <triedcooking> | |
[error] "b" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.RandomBehaviour.type | |
[error] "RandomBehaviour" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] Apply( // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] "positionGen" // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries)org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] ) | |
[error] ) | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <param> <triedcooking> | |
[error] "p" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <empty> | |
[error] ) | |
[error] Apply( | |
[error] "boundaries"."should" | |
[error] Apply( | |
[error] "contain" | |
[error] Apply( // def nextPosition(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position,boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries,players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position]): com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position in object RandomBehaviour, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "b"."nextPosition" // def nextPosition(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position,boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries,players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position]): com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position in object RandomBehaviour, tree.tpe=(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position])com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] // 3 arguments | |
[error] "p" // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] "players" // val players: Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "it" | |
[error] "should always move exactly 1 tile" | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val b: com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.RandomBehaviour.type | |
[error] <triedcooking> | |
[error] "b" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Droid.RandomBehaviour.type | |
[error] "RandomBehaviour" | |
[error] ) | |
[error] Apply( | |
[error] Apply( | |
[error] "forAll" | |
[error] Apply( // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] "positionGen" // def positionGen(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries): org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=(boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries)org.scalacheck.Gen[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] ) | |
[error] ) | |
[error] Function( // val $anonfun: <notype> | |
[error] ValDef( // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <param> <triedcooking> | |
[error] "p" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <empty> | |
[error] ) | |
[error] Block( | |
[error] ValDef( // val next: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] <triedcooking> | |
[error] "next" | |
[error] <tpt> // tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] Apply( // def nextPosition(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position,boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries,players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position]): com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position in object RandomBehaviour, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "b"."nextPosition" // def nextPosition(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position,boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries,players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position]): com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position in object RandomBehaviour, tree.tpe=(current: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, players: TraversableOnce[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position])com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] // 3 arguments | |
[error] "p" // p: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position | |
[error] "boundaries" // val boundaries: com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries, tree.tpe=com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Boundaries | |
[error] "players" // val players: Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position], tree.tpe=Seq[com.tinylabproductions.quazibuild.server.actor.live_game.model.Field.Position] | |
[error] ) | |
[error] ) | |
[error] Apply( | |
[error] "assert" | |
[error] // 2 arguments | |
[error] Apply( | |
[error] next.tileDistanceTo(p)."$eq$eq$eq" | |
[error] 1 | |
[error] ) | |
[error] "" | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] | |
[error] == Expanded type of tree == | |
[error] | |
[error] TypeRef( | |
[error] TypeSymbol(sealed abstract class Shrink[T <: <?>] extends AnyRef) | |
[error] args = List( | |
[error] TypeRef( | |
[error] pre = SingleType(pre = ThisType(package model), object Field) | |
[error] TypeSymbol( | |
[error] case class Position extends Product with Serializable | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] | |
[error] uncaught exception during compilation: scala.tools.nsc.interactive.RangePositions$ValidateException | |
scala.tools.nsc.interactive.RangePositions$ValidateException: Synthetic tree [3029] contains nonsynthetic tree [3012] | |
at scala.tools.nsc.interactive.RangePositions$class.positionError$1(RangePositions.scala:201) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:218) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241) | |
at scala.tools.nsc.interactive.RangePositions$class.validatePositions(RangePositions.scala:246) | |
at xsbt.CachedCompiler0$$anon$1.validatePositions(CompilerInterface.scala:113) | |
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:100) | |
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:464) | |
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:91) | |
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:91) | |
at scala.collection.Iterator$class.foreach(Iterator.scala:727) | |
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) | |
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:91) | |
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1583) | |
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1557) | |
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1553) | |
at scala.tools.nsc.Global$Run.compile(Global.scala:1662) | |
at xsbt.CachedCompiler0.run(CompilerInterface.scala:88) | |
at xsbt.CachedCompiler0.run(CompilerInterface.scala:72) | |
at xsbt.CompilerInterface.run(CompilerInterface.scala:27) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) | |
at java.lang.reflect.Method.invoke(Unknown Source) | |
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:73) | |
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:35) | |
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:29) | |
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:71) | |
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71) | |
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71) | |
at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:101) | |
at sbt.compiler.AggressiveCompile$$anonfun$4.compileScala$1(AggressiveCompile.scala:70) | |
at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:88) | |
at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:60) | |
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:24) | |
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:22) | |
at sbt.inc.Incremental$.cycle(Incremental.scala:52) | |
at sbt.inc.Incremental$.compile(Incremental.scala:29) | |
at sbt.inc.IncrementalCompile$.apply(Compile.scala:20) | |
at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:96) | |
at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:44) | |
at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:31) | |
at sbt.Compiler$.apply(Compiler.scala:79) | |
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:574) | |
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:574) | |
at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578) | |
at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578) | |
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49) | |
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311) | |
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311) | |
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41) | |
at sbt.std.Transform$$anon$5.work(System.scala:71) | |
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232) | |
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232) | |
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) | |
at sbt.Execute.work(Execute.scala:238) | |
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232) | |
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232) | |
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) | |
at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) | |
at java.util.concurrent.FutureTask.run(Unknown Source) | |
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) | |
at java.util.concurrent.FutureTask.run(Unknown Source) | |
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) | |
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) | |
at java.lang.Thread.run(Unknown Source) | |
[error] (test:compile) scala.tools.nsc.interactive.RangePositions$ValidateException: Synthetic tree [3029] contains nonsynthetic tree [3012] | |
[error] Total time: 3 s, completed 2013-12-30 13.09.03 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sbt._ | |
import sbt.Keys._ | |
object Versions { | |
val Akka = "2.2.1" | |
} | |
object Dependencies { | |
val Akka = Seq( | |
"com.typesafe.akka" %% "akka-actor" % Versions.Akka, | |
"com.typesafe.akka" %% "akka-channels-experimental" % Versions.Akka | |
) | |
val Google = Seq( | |
"com.google.protobuf" % "protobuf-java" % "2.4.1" | |
) | |
val Joda = Seq( | |
"org.joda" % "joda-convert" % "1.5", | |
"joda-time" % "joda-time" % "2.3" | |
) | |
val Slick = Seq( | |
"mysql" % "mysql-connector-java" % "5.1.26", | |
"com.typesafe.slick" %% "slick" % "1.0.1", | |
"com.jolbox" % "bonecp" % "0.8.0.RELEASE" | |
) | |
val Other = Seq( | |
"org.clapper" % "grizzled-scala_2.10" % "1.1.4", | |
"com.typesafe.play" %% "play-json" % "2.2.1", | |
"net.databinder.dispatch" %% "dispatch-core" % "0.11.0" | |
) | |
val Test = Seq( | |
"org.scalatest" %% "scalatest" % "2.0" % "test", | |
"org.scalacheck" %% "scalacheck" % "1.10.1" % "test", | |
"com.typesafe.akka" %% "akka-testkit" % Versions.Akka % "test" | |
) | |
val all = Akka ++ Google ++ Joda ++ Slick ++ Other ++ Test | |
} | |
object Resolvers { | |
val Typesafe = Seq( | |
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases" | |
) | |
val Sonatype = Seq("snapshots", "releases").map(Resolver.sonatypeRepo) | |
val all = Typesafe ++ Sonatype | |
} | |
object ServerBuild extends Build { | |
lazy val server = Project( | |
id = "server", | |
base = file("."), | |
settings = Project.defaultSettings ++ | |
com.github.retronym.SbtOneJar.oneJarSettings ++ Seq( | |
name := "Quazibuild Server", | |
organization := "com.tinylabproductions", | |
version := "0.1-SNAPSHOT", | |
scalaVersion := "2.10.3", | |
scalaBinaryVersion := "2.10", | |
autoCompilerPlugins := true, | |
libraryDependencies += compilerPlugin( | |
"org.scala-lang.plugins" % "continuations" % "2.10.3" | |
), | |
scalacOptions ++= Seq( | |
"-feature", "-deprecation", "-P:continuations:enable" | |
), | |
scalacOptions in Test ++= Seq("-Yrangepos"), | |
resolvers ++= Resolvers.all, | |
libraryDependencies ++= Dependencies.all, | |
initialCommands in console := | |
"import implicits._;" + | |
"import concurrent.duration._;" + | |
"import org.joda.time._;" + | |
"import com.tinylabproductions.quazibuild.server._;" | |
) | |
) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment