diff options
Diffstat (limited to 'test/files/buildmanager/t2556_3')
-rw-r--r-- | test/files/buildmanager/t2556_3/A.scala | 5 | ||||
-rw-r--r-- | test/files/buildmanager/t2556_3/B.scala | 5 | ||||
-rw-r--r-- | test/files/buildmanager/t2556_3/C.scala | 2 | ||||
-rw-r--r-- | test/files/buildmanager/t2556_3/t2556_3.check | 18 | ||||
-rw-r--r-- | test/files/buildmanager/t2556_3/t2556_3.test | 3 |
5 files changed, 33 insertions, 0 deletions
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 |