summaryrefslogtreecommitdiff
path: root/test/files/buildmanager
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-01-26 10:03:04 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-01-26 10:03:04 +0000
commit70cc762d3a29bc91349cd84b3e22bf46d189d817 (patch)
treee8c54426601087baa824308e4867f7b6f67a6c49 /test/files/buildmanager
parentc3d125891f7707cd8b47786bfd063760508b009a (diff)
downloadscala-70cc762d3a29bc91349cd84b3e22bf46d189d817.tar.gz
scala-70cc762d3a29bc91349cd84b3e22bf46d189d817.tar.bz2
scala-70cc762d3a29bc91349cd84b3e22bf46d189d817.zip
Changed the info statements in refined build ma...
Changed the info statements in refined build manager to print the information in more consistent way, so that we can test it using partest. Added more tests for build manager, more to follow... No review.
Diffstat (limited to 'test/files/buildmanager')
-rw-r--r--test/files/buildmanager/t2556_1/A.scala3
-rw-r--r--test/files/buildmanager/t2556_1/B.scala3
-rw-r--r--test/files/buildmanager/t2556_1/t2556_1.changes/A2.scala4
-rw-r--r--test/files/buildmanager/t2556_1/t2556_1.check12
-rw-r--r--test/files/buildmanager/t2556_1/t2556_1.test3
-rw-r--r--test/files/buildmanager/t2556_2/A.scala4
-rw-r--r--test/files/buildmanager/t2556_2/B.scala2
-rw-r--r--test/files/buildmanager/t2556_2/C.scala4
-rw-r--r--test/files/buildmanager/t2556_2/t2556_2.changes/A2.scala4
-rw-r--r--test/files/buildmanager/t2556_2/t2556_2.check13
-rw-r--r--test/files/buildmanager/t2556_2/t2556_2.test3
-rw-r--r--test/files/buildmanager/t2556_3/A.scala5
-rw-r--r--test/files/buildmanager/t2556_3/B.scala5
-rw-r--r--test/files/buildmanager/t2556_3/C.scala2
-rw-r--r--test/files/buildmanager/t2556_3/t2556_3.check18
-rw-r--r--test/files/buildmanager/t2556_3/t2556_3.test3
-rw-r--r--test/files/buildmanager/t2557/A.scala4
-rw-r--r--test/files/buildmanager/t2557/B.scala4
-rw-r--r--test/files/buildmanager/t2557/C.scala3
-rw-r--r--test/files/buildmanager/t2557/D.scala1
-rw-r--r--test/files/buildmanager/t2557/E.scala1
-rw-r--r--test/files/buildmanager/t2557/F.scala4
-rw-r--r--test/files/buildmanager/t2557/t2557.changes/D2.scala2
-rw-r--r--test/files/buildmanager/t2557/t2557.check10
-rw-r--r--test/files/buildmanager/t2557/t2557.test3
-rw-r--r--test/files/buildmanager/t2559/A.scala5
-rw-r--r--test/files/buildmanager/t2559/D.scala8
-rw-r--r--test/files/buildmanager/t2559/t2559.changes/A2.scala5
-rw-r--r--test/files/buildmanager/t2559/t2559.check14
-rw-r--r--test/files/buildmanager/t2559/t2559.test3
-rw-r--r--test/files/buildmanager/t2562/A.scala7
-rw-r--r--test/files/buildmanager/t2562/B.scala8
-rw-r--r--test/files/buildmanager/t2562/t2562.changes/A2.scala8
-rw-r--r--test/files/buildmanager/t2562/t2562.check12
-rw-r--r--test/files/buildmanager/t2562/t2562.test3
-rw-r--r--test/files/buildmanager/t2649/A.scala3
-rw-r--r--test/files/buildmanager/t2649/B.scala4
-rw-r--r--test/files/buildmanager/t2649/t2649.changes/A2.scala4
-rw-r--r--test/files/buildmanager/t2649/t2649.check9
-rw-r--r--test/files/buildmanager/t2649/t2649.test3
-rw-r--r--test/files/buildmanager/t2652/A.scala3
-rw-r--r--test/files/buildmanager/t2652/B.scala4
-rw-r--r--test/files/buildmanager/t2652/t2652.changes/A2.scala4
-rw-r--r--test/files/buildmanager/t2652/t2652.check9
-rw-r--r--test/files/buildmanager/t2652/t2652.test3
-rw-r--r--test/files/buildmanager/t2653/A.scala2
-rw-r--r--test/files/buildmanager/t2653/B.scala3
-rw-r--r--test/files/buildmanager/t2653/t2653.changes/A2.scala3
-rw-r--r--test/files/buildmanager/t2653/t2653.check13
-rw-r--r--test/files/buildmanager/t2653/t2653.test3
-rw-r--r--test/files/buildmanager/t2654/A.scala2
-rw-r--r--test/files/buildmanager/t2654/B.scala1
-rw-r--r--test/files/buildmanager/t2654/t2654.changes/A2.scala4
-rw-r--r--test/files/buildmanager/t2654/t2654.check6
-rw-r--r--test/files/buildmanager/t2654/t2654.test3
55 files changed, 279 insertions, 0 deletions
diff --git a/test/files/buildmanager/t2556_1/A.scala b/test/files/buildmanager/t2556_1/A.scala
new file mode 100644
index 0000000000..c6e200b217
--- /dev/null
+++ b/test/files/buildmanager/t2556_1/A.scala
@@ -0,0 +1,3 @@
+class A {
+ def x(i: Int) = i+"3"
+}
diff --git a/test/files/buildmanager/t2556_1/B.scala b/test/files/buildmanager/t2556_1/B.scala
new file mode 100644
index 0000000000..8529587b56
--- /dev/null
+++ b/test/files/buildmanager/t2556_1/B.scala
@@ -0,0 +1,3 @@
+class B extends A {
+ def x(s: String) = s+"5"
+}
diff --git a/test/files/buildmanager/t2556_1/t2556_1.changes/A2.scala b/test/files/buildmanager/t2556_1/t2556_1.changes/A2.scala
new file mode 100644
index 0000000000..4ac1045e13
--- /dev/null
+++ b/test/files/buildmanager/t2556_1/t2556_1.changes/A2.scala
@@ -0,0 +1,4 @@
+class A {
+ def x(i: String) = i+"3"
+}
+
diff --git a/test/files/buildmanager/t2556_1/t2556_1.check b/test/files/buildmanager/t2556_1/t2556_1.check
new file mode 100644
index 0000000000..dc9437fa7e
--- /dev/null
+++ b/test/files/buildmanager/t2556_1/t2556_1.check
@@ -0,0 +1,12 @@
+builder > A.scala B.scala
+compiling Set(A.scala, B.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(class A -> List(Changed(Definition(A.x))[method x changed from (i: Int)java.lang.String to (i: java.lang.String)java.lang.String flags: <method>]))
+invalidate B.scala because inherited method changed [Changed(Definition(A.x))[method x changed from (i: Int)java.lang.String to (i: java.lang.String)java.lang.String flags: <method>]]
+compiling Set(B.scala)
+B.scala:2: error: overriding method x in class A of type (i: String)java.lang.String;
+ method x needs `override' modifier
+ def x(s: String) = s+"5"
+ ^
diff --git a/test/files/buildmanager/t2556_1/t2556_1.test b/test/files/buildmanager/t2556_1/t2556_1.test
new file mode 100644
index 0000000000..6f3bd03361
--- /dev/null
+++ b/test/files/buildmanager/t2556_1/t2556_1.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala
+>>update A.scala=>A2.scala
+>>compile A.scala
diff --git a/test/files/buildmanager/t2556_2/A.scala b/test/files/buildmanager/t2556_2/A.scala
new file mode 100644
index 0000000000..b8da5c8fb1
--- /dev/null
+++ b/test/files/buildmanager/t2556_2/A.scala
@@ -0,0 +1,4 @@
+class A {
+ def x(i: Int) = i+"3"
+}
+
diff --git a/test/files/buildmanager/t2556_2/B.scala b/test/files/buildmanager/t2556_2/B.scala
new file mode 100644
index 0000000000..80ff25d0ca
--- /dev/null
+++ b/test/files/buildmanager/t2556_2/B.scala
@@ -0,0 +1,2 @@
+class B extends A
+
diff --git a/test/files/buildmanager/t2556_2/C.scala b/test/files/buildmanager/t2556_2/C.scala
new file mode 100644
index 0000000000..0ab13e3757
--- /dev/null
+++ b/test/files/buildmanager/t2556_2/C.scala
@@ -0,0 +1,4 @@
+class C extends B {
+ def x(s: String) = s+"5"
+}
+
diff --git a/test/files/buildmanager/t2556_2/t2556_2.changes/A2.scala b/test/files/buildmanager/t2556_2/t2556_2.changes/A2.scala
new file mode 100644
index 0000000000..4ac1045e13
--- /dev/null
+++ b/test/files/buildmanager/t2556_2/t2556_2.changes/A2.scala
@@ -0,0 +1,4 @@
+class A {
+ def x(i: String) = i+"3"
+}
+
diff --git a/test/files/buildmanager/t2556_2/t2556_2.check b/test/files/buildmanager/t2556_2/t2556_2.check
new file mode 100644
index 0000000000..a4d6724b11
--- /dev/null
+++ b/test/files/buildmanager/t2556_2/t2556_2.check
@@ -0,0 +1,13 @@
+builder > A.scala B.scala C.scala
+compiling Set(A.scala, B.scala, C.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(class A -> List(Changed(Definition(A.x))[method x changed from (i: Int)java.lang.String to (i: java.lang.String)java.lang.String flags: <method>]))
+invalidate B.scala because inherited method changed [Changed(Definition(A.x))[method x changed from (i: Int)java.lang.String to (i: java.lang.String)java.lang.String flags: <method>]]
+invalidate C.scala because inherited method changed [Changed(Definition(A.x))[method x changed from (i: Int)java.lang.String to (i: java.lang.String)java.lang.String flags: <method>]]
+compiling Set(B.scala, C.scala)
+C.scala:2: error: overriding method x in class A of type (i: String)java.lang.String;
+ method x needs `override' modifier
+ def x(s: String) = s+"5"
+ ^
diff --git a/test/files/buildmanager/t2556_2/t2556_2.test b/test/files/buildmanager/t2556_2/t2556_2.test
new file mode 100644
index 0000000000..9f31bb6409
--- /dev/null
+++ b/test/files/buildmanager/t2556_2/t2556_2.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala C.scala
+>>update A.scala=>A2.scala
+>>compile A.scala
diff --git a/test/files/buildmanager/t2556_3/A.scala b/test/files/buildmanager/t2556_3/A.scala
new file mode 100644
index 0000000000..089a05f493
--- /dev/null
+++ b/test/files/buildmanager/t2556_3/A.scala
@@ -0,0 +1,5 @@
+class A {
+ def x = 3
+}
+class B extends A
+
diff --git a/test/files/buildmanager/t2556_3/B.scala b/test/files/buildmanager/t2556_3/B.scala
new file mode 100644
index 0000000000..0ec5ae4b55
--- /dev/null
+++ b/test/files/buildmanager/t2556_3/B.scala
@@ -0,0 +1,5 @@
+object E {
+ def main(args: Array[String]) =
+ println( (new C).x )
+}
+
diff --git a/test/files/buildmanager/t2556_3/C.scala b/test/files/buildmanager/t2556_3/C.scala
new file mode 100644
index 0000000000..403df8455e
--- /dev/null
+++ b/test/files/buildmanager/t2556_3/C.scala
@@ -0,0 +1,2 @@
+class C extends B
+
diff --git a/test/files/buildmanager/t2556_3/t2556_3.check b/test/files/buildmanager/t2556_3/t2556_3.check
new file mode 100644
index 0000000000..c59e4fe09d
--- /dev/null
+++ b/test/files/buildmanager/t2556_3/t2556_3.check
@@ -0,0 +1,18 @@
+builder > A.scala B.scala C.scala
+compiling Set(A.scala, B.scala, C.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(class A -> List(), class B -> List(Changed(Class(B))[List((A,java.lang.Object), (ScalaObject,ScalaObject))]))
+invalidate C.scala because parents have changed [Changed(Class(B))[List((A,java.lang.Object), (ScalaObject,ScalaObject))]]
+invalidate B.scala because it references invalid (no longer inherited) defintion [ParentChanged(Class(C))]
+compiling Set(B.scala, C.scala)
+B.scala:3: error: type mismatch;
+ found : C
+ required: ?{val x: ?}
+Note that implicit conversions are not applicable because they are ambiguous:
+ both method any2ArrowAssoc in object Predef of type [A](x: A)ArrowAssoc[A]
+ and method any2Ensuring in object Predef of type [A](x: A)Ensuring[A]
+ are possible conversion functions from C to ?{val x: ?}
+ println( (new C).x )
+ ^
diff --git a/test/files/buildmanager/t2556_3/t2556_3.test b/test/files/buildmanager/t2556_3/t2556_3.test
new file mode 100644
index 0000000000..9f31bb6409
--- /dev/null
+++ b/test/files/buildmanager/t2556_3/t2556_3.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala C.scala
+>>update A.scala=>A2.scala
+>>compile A.scala
diff --git a/test/files/buildmanager/t2557/A.scala b/test/files/buildmanager/t2557/A.scala
new file mode 100644
index 0000000000..3be55f19a6
--- /dev/null
+++ b/test/files/buildmanager/t2557/A.scala
@@ -0,0 +1,4 @@
+trait A {
+ def x = 3
+}
+
diff --git a/test/files/buildmanager/t2557/B.scala b/test/files/buildmanager/t2557/B.scala
new file mode 100644
index 0000000000..ea86a90079
--- /dev/null
+++ b/test/files/buildmanager/t2557/B.scala
@@ -0,0 +1,4 @@
+trait B extends A {
+ override def x = super.x * 2
+}
+
diff --git a/test/files/buildmanager/t2557/C.scala b/test/files/buildmanager/t2557/C.scala
new file mode 100644
index 0000000000..dd575ac38d
--- /dev/null
+++ b/test/files/buildmanager/t2557/C.scala
@@ -0,0 +1,3 @@
+trait C extends A {
+ override def x = super.x + 5
+}
diff --git a/test/files/buildmanager/t2557/D.scala b/test/files/buildmanager/t2557/D.scala
new file mode 100644
index 0000000000..4e662a80ce
--- /dev/null
+++ b/test/files/buildmanager/t2557/D.scala
@@ -0,0 +1 @@
+trait D extends C with B
diff --git a/test/files/buildmanager/t2557/E.scala b/test/files/buildmanager/t2557/E.scala
new file mode 100644
index 0000000000..2aee552675
--- /dev/null
+++ b/test/files/buildmanager/t2557/E.scala
@@ -0,0 +1 @@
+trait E extends D
diff --git a/test/files/buildmanager/t2557/F.scala b/test/files/buildmanager/t2557/F.scala
new file mode 100644
index 0000000000..e1996704e7
--- /dev/null
+++ b/test/files/buildmanager/t2557/F.scala
@@ -0,0 +1,4 @@
+object F extends E {
+ def main(args: Array[String]) =
+ println(x)
+}
diff --git a/test/files/buildmanager/t2557/t2557.changes/D2.scala b/test/files/buildmanager/t2557/t2557.changes/D2.scala
new file mode 100644
index 0000000000..67295f8e6d
--- /dev/null
+++ b/test/files/buildmanager/t2557/t2557.changes/D2.scala
@@ -0,0 +1,2 @@
+trait D extends B with C
+
diff --git a/test/files/buildmanager/t2557/t2557.check b/test/files/buildmanager/t2557/t2557.check
new file mode 100644
index 0000000000..ae373c15dd
--- /dev/null
+++ b/test/files/buildmanager/t2557/t2557.check
@@ -0,0 +1,10 @@
+builder > A.scala B.scala C.scala D.scala E.scala F.scala
+compiling Set(A.scala, B.scala, C.scala, D.scala, E.scala, F.scala)
+Changes: Map()
+builder > D.scala
+compiling Set(D.scala)
+Changes: Map(trait D -> List(Changed(Class(D))[List((java.lang.Object,java.lang.Object), (C,B), (B,C))]))
+invalidate E.scala because parents have changed [Changed(Class(D))[List((java.lang.Object,java.lang.Object), (C,B), (B,C))]]
+invalidate F.scala because parents have changed [Changed(Class(D))[List((java.lang.Object,java.lang.Object), (C,B), (B,C))]]
+compiling Set(E.scala, F.scala)
+Changes: Map(trait E -> List(), object F -> List())
diff --git a/test/files/buildmanager/t2557/t2557.test b/test/files/buildmanager/t2557/t2557.test
new file mode 100644
index 0000000000..6b0103092f
--- /dev/null
+++ b/test/files/buildmanager/t2557/t2557.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala C.scala D.scala E.scala F.scala
+>>update D.scala=>D2.scala
+>>compile D.scala
diff --git a/test/files/buildmanager/t2559/A.scala b/test/files/buildmanager/t2559/A.scala
new file mode 100644
index 0000000000..fb4f6e3545
--- /dev/null
+++ b/test/files/buildmanager/t2559/A.scala
@@ -0,0 +1,5 @@
+sealed trait A
+class B extends A
+class C extends A
+//class E extends A
+
diff --git a/test/files/buildmanager/t2559/D.scala b/test/files/buildmanager/t2559/D.scala
new file mode 100644
index 0000000000..4b8422db04
--- /dev/null
+++ b/test/files/buildmanager/t2559/D.scala
@@ -0,0 +1,8 @@
+object D {
+ def x(a: A) =
+ a match {
+ case _: B => ()
+ case _: C => ()
+ }
+}
+
diff --git a/test/files/buildmanager/t2559/t2559.changes/A2.scala b/test/files/buildmanager/t2559/t2559.changes/A2.scala
new file mode 100644
index 0000000000..8e90594e2c
--- /dev/null
+++ b/test/files/buildmanager/t2559/t2559.changes/A2.scala
@@ -0,0 +1,5 @@
+sealed trait A
+class B extends A
+class C extends A
+class E extends A
+
diff --git a/test/files/buildmanager/t2559/t2559.check b/test/files/buildmanager/t2559/t2559.check
new file mode 100644
index 0000000000..01dc584113
--- /dev/null
+++ b/test/files/buildmanager/t2559/t2559.check
@@ -0,0 +1,14 @@
+builder > A.scala D.scala
+compiling Set(A.scala, D.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(trait A -> List(), class B -> List(), class C -> List(), class E -> List(Changed(Class(A))[class E extends a sealed trait A]))
+invalidate D.scala because it references changed class [Changed(Class(A))[class E extends a sealed trait A]]
+compiling Set(D.scala)
+D.scala:3: warning: match is not exhaustive!
+missing combination E
+
+ a match {
+ ^
+Changes: Map(object D -> List())
diff --git a/test/files/buildmanager/t2559/t2559.test b/test/files/buildmanager/t2559/t2559.test
new file mode 100644
index 0000000000..b787c5b39f
--- /dev/null
+++ b/test/files/buildmanager/t2559/t2559.test
@@ -0,0 +1,3 @@
+>>compile A.scala D.scala
+>>update A.scala=>A2.scala
+>>compile A.scala
diff --git a/test/files/buildmanager/t2562/A.scala b/test/files/buildmanager/t2562/A.scala
new file mode 100644
index 0000000000..2208585eed
--- /dev/null
+++ b/test/files/buildmanager/t2562/A.scala
@@ -0,0 +1,7 @@
+object A
+{
+ def x0 = B.x0
+ def x1 = B.x1
+ def x2 = B.x2
+ def x3 = 3
+}
diff --git a/test/files/buildmanager/t2562/B.scala b/test/files/buildmanager/t2562/B.scala
new file mode 100644
index 0000000000..6f658954e1
--- /dev/null
+++ b/test/files/buildmanager/t2562/B.scala
@@ -0,0 +1,8 @@
+object B
+{
+ def x0 = A.x1
+ def x1 = A.x2
+ def x2 = A.x3
+}
+
+
diff --git a/test/files/buildmanager/t2562/t2562.changes/A2.scala b/test/files/buildmanager/t2562/t2562.changes/A2.scala
new file mode 100644
index 0000000000..743609eb18
--- /dev/null
+++ b/test/files/buildmanager/t2562/t2562.changes/A2.scala
@@ -0,0 +1,8 @@
+object A
+{
+ def x0 = B.x0
+ def x1 = B.x1
+ def x2 = B.x2
+ def x3 = "3"
+}
+
diff --git a/test/files/buildmanager/t2562/t2562.check b/test/files/buildmanager/t2562/t2562.check
new file mode 100644
index 0000000000..ba86202156
--- /dev/null
+++ b/test/files/buildmanager/t2562/t2562.check
@@ -0,0 +1,12 @@
+builder > A.scala B.scala
+compiling Set(A.scala, B.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(object A -> List(Changed(Definition(A.x3))[method x3 changed from ()Int to ()java.lang.String flags: <method>]))
+invalidate B.scala because it references changed definition [Changed(Definition(A.x3))[method x3 changed from ()Int to ()java.lang.String flags: <method>]]
+compiling Set(B.scala)
+Changes: Map(object B -> List(Changed(Definition(B.x2))[method x2 changed from ()Int to ()java.lang.String flags: <method>]))
+invalidate A.scala because it references changed definition [Changed(Definition(B.x2))[method x2 changed from ()Int to ()java.lang.String flags: <method>]]
+compiling Set(A.scala, B.scala)
+Changes: Map(object B -> List(Changed(Definition(B.x0))[method x0 changed from ()Int to ()java.lang.String flags: <method>], Changed(Definition(B.x1))[method x1 changed from ()Int to ()java.lang.String flags: <method>]), object A -> List(Changed(Definition(A.x0))[method x0 changed from ()Int to ()java.lang.String flags: <method>], Changed(Definition(A.x1))[method x1 changed from ()Int to ()java.lang.String flags: <method>], Changed(Definition(A.x2))[method x2 changed from ()Int to ()java.lang.String flags: <method>]))
diff --git a/test/files/buildmanager/t2562/t2562.test b/test/files/buildmanager/t2562/t2562.test
new file mode 100644
index 0000000000..6f3bd03361
--- /dev/null
+++ b/test/files/buildmanager/t2562/t2562.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala
+>>update A.scala=>A2.scala
+>>compile A.scala
diff --git a/test/files/buildmanager/t2649/A.scala b/test/files/buildmanager/t2649/A.scala
new file mode 100644
index 0000000000..86cc3f2c15
--- /dev/null
+++ b/test/files/buildmanager/t2649/A.scala
@@ -0,0 +1,3 @@
+object A {
+ def x(zz: Int, yy: Int) = yy - zz
+}
diff --git a/test/files/buildmanager/t2649/B.scala b/test/files/buildmanager/t2649/B.scala
new file mode 100644
index 0000000000..26c89518cb
--- /dev/null
+++ b/test/files/buildmanager/t2649/B.scala
@@ -0,0 +1,4 @@
+object B {
+ def main(args: Array[String]): Unit =
+ println( A.x(zz = 3, yy = 4) )
+}
diff --git a/test/files/buildmanager/t2649/t2649.changes/A2.scala b/test/files/buildmanager/t2649/t2649.changes/A2.scala
new file mode 100644
index 0000000000..9a6309fca3
--- /dev/null
+++ b/test/files/buildmanager/t2649/t2649.changes/A2.scala
@@ -0,0 +1,4 @@
+object A {
+ def x(yy: Int, zz: Int) = yy - zz
+}
+
diff --git a/test/files/buildmanager/t2649/t2649.check b/test/files/buildmanager/t2649/t2649.check
new file mode 100644
index 0000000000..5b698ec03f
--- /dev/null
+++ b/test/files/buildmanager/t2649/t2649.check
@@ -0,0 +1,9 @@
+builder > A.scala B.scala
+compiling Set(A.scala, B.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(object A -> List(Changed(Definition(A.x))[method x changed from (zz: Int,yy: Int)Int to (yy: Int,zz: Int)Int flags: <method>]))
+invalidate B.scala because it references changed definition [Changed(Definition(A.x))[method x changed from (zz: Int,yy: Int)Int to (yy: Int,zz: Int)Int flags: <method>]]
+compiling Set(B.scala)
+Changes: Map(object B -> List())
diff --git a/test/files/buildmanager/t2649/t2649.test b/test/files/buildmanager/t2649/t2649.test
new file mode 100644
index 0000000000..6f3bd03361
--- /dev/null
+++ b/test/files/buildmanager/t2649/t2649.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala
+>>update A.scala=>A2.scala
+>>compile A.scala
diff --git a/test/files/buildmanager/t2652/A.scala b/test/files/buildmanager/t2652/A.scala
new file mode 100644
index 0000000000..a62506e890
--- /dev/null
+++ b/test/files/buildmanager/t2652/A.scala
@@ -0,0 +1,3 @@
+class A {
+ def x[T](t: T) = t
+}
diff --git a/test/files/buildmanager/t2652/B.scala b/test/files/buildmanager/t2652/B.scala
new file mode 100644
index 0000000000..86d08f0d3d
--- /dev/null
+++ b/test/files/buildmanager/t2652/B.scala
@@ -0,0 +1,4 @@
+object B {
+ val y = (new A).x(3)
+}
+
diff --git a/test/files/buildmanager/t2652/t2652.changes/A2.scala b/test/files/buildmanager/t2652/t2652.changes/A2.scala
new file mode 100644
index 0000000000..29135c0e94
--- /dev/null
+++ b/test/files/buildmanager/t2652/t2652.changes/A2.scala
@@ -0,0 +1,4 @@
+class A {
+ def x[@specialized T](t: T) = t
+}
+
diff --git a/test/files/buildmanager/t2652/t2652.check b/test/files/buildmanager/t2652/t2652.check
new file mode 100644
index 0000000000..77a27a727f
--- /dev/null
+++ b/test/files/buildmanager/t2652/t2652.check
@@ -0,0 +1,9 @@
+builder > A.scala B.scala
+compiling Set(A.scala, B.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(class A -> List(Changed(Definition(A.x))[method x changed from [T](t: T)T to [T](t: T)T flags: <method>]))
+invalidate B.scala because it references changed definition [Changed(Definition(A.x))[method x changed from [T](t: T)T to [T](t: T)T flags: <method>]]
+compiling Set(B.scala)
+Changes: Map(object B -> List())
diff --git a/test/files/buildmanager/t2652/t2652.test b/test/files/buildmanager/t2652/t2652.test
new file mode 100644
index 0000000000..6f3bd03361
--- /dev/null
+++ b/test/files/buildmanager/t2652/t2652.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala
+>>update A.scala=>A2.scala
+>>compile A.scala
diff --git a/test/files/buildmanager/t2653/A.scala b/test/files/buildmanager/t2653/A.scala
new file mode 100644
index 0000000000..fb17a158c7
--- /dev/null
+++ b/test/files/buildmanager/t2653/A.scala
@@ -0,0 +1,2 @@
+class A[+T]
+
diff --git a/test/files/buildmanager/t2653/B.scala b/test/files/buildmanager/t2653/B.scala
new file mode 100644
index 0000000000..8f55a88e05
--- /dev/null
+++ b/test/files/buildmanager/t2653/B.scala
@@ -0,0 +1,3 @@
+object B {
+ val a: A[Any] = new A[Int]
+}
diff --git a/test/files/buildmanager/t2653/t2653.changes/A2.scala b/test/files/buildmanager/t2653/t2653.changes/A2.scala
new file mode 100644
index 0000000000..ffc1b97ebb
--- /dev/null
+++ b/test/files/buildmanager/t2653/t2653.changes/A2.scala
@@ -0,0 +1,3 @@
+class A[T]
+
+
diff --git a/test/files/buildmanager/t2653/t2653.check b/test/files/buildmanager/t2653/t2653.check
new file mode 100644
index 0000000000..0d40601962
--- /dev/null
+++ b/test/files/buildmanager/t2653/t2653.check
@@ -0,0 +1,13 @@
+builder > A.scala B.scala
+compiling Set(A.scala, B.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(class A -> List(Changed(Class(A))[ tparams: List((type T,type T))], Changed(Definition(A.<init>))[constructor A changed from ()A[T] to ()A[T] flags: <method>]))
+invalidate B.scala because it references changed class [Changed(Class(A))[ tparams: List((type T,type T))]]
+compiling Set(B.scala)
+B.scala:2: error: type mismatch;
+ found : A[Int]
+ required: A[Any]
+ val a: A[Any] = new A[Int]
+ ^
diff --git a/test/files/buildmanager/t2653/t2653.test b/test/files/buildmanager/t2653/t2653.test
new file mode 100644
index 0000000000..6f3bd03361
--- /dev/null
+++ b/test/files/buildmanager/t2653/t2653.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala
+>>update A.scala=>A2.scala
+>>compile A.scala
diff --git a/test/files/buildmanager/t2654/A.scala b/test/files/buildmanager/t2654/A.scala
new file mode 100644
index 0000000000..75f396d039
--- /dev/null
+++ b/test/files/buildmanager/t2654/A.scala
@@ -0,0 +1,2 @@
+class A
+
diff --git a/test/files/buildmanager/t2654/B.scala b/test/files/buildmanager/t2654/B.scala
new file mode 100644
index 0000000000..a18aec3dbe
--- /dev/null
+++ b/test/files/buildmanager/t2654/B.scala
@@ -0,0 +1 @@
+class B extends A
diff --git a/test/files/buildmanager/t2654/t2654.changes/A2.scala b/test/files/buildmanager/t2654/t2654.changes/A2.scala
new file mode 100644
index 0000000000..c302edbd85
--- /dev/null
+++ b/test/files/buildmanager/t2654/t2654.changes/A2.scala
@@ -0,0 +1,4 @@
+class A {
+ private def x = 5
+}
+
diff --git a/test/files/buildmanager/t2654/t2654.check b/test/files/buildmanager/t2654/t2654.check
new file mode 100644
index 0000000000..68f6e8efc0
--- /dev/null
+++ b/test/files/buildmanager/t2654/t2654.check
@@ -0,0 +1,6 @@
+builder > A.scala B.scala
+compiling Set(A.scala, B.scala)
+Changes: Map()
+builder > A.scala
+compiling Set(A.scala)
+Changes: Map(class A -> List())
diff --git a/test/files/buildmanager/t2654/t2654.test b/test/files/buildmanager/t2654/t2654.test
new file mode 100644
index 0000000000..6f3bd03361
--- /dev/null
+++ b/test/files/buildmanager/t2654/t2654.test
@@ -0,0 +1,3 @@
+>>compile A.scala B.scala
+>>update A.scala=>A2.scala
+>>compile A.scala