From d87592da76eb555f0e3fc3732169e56b1852fba1 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Wed, 19 Sep 2012 19:02:43 +0200 Subject: Disabled failing build manager tests. When the refined build manager computes its change sets it mixes up the types. It computes constructors of inner classes of the first compilation that point to types of the second compilation. This breaks a useful assertion in ExtensionMethods. The error you get for t4245 is java.lang.AssertionError: assertion failed: unexpected constructor erasure A#6956.this.B#20211 for class B#6963 What goes on here is that the primary constructor of inner class B#6963 points to the new version of that inner class A#6956.this.B#20211. This happens during the computation of change sets, not during normal compilation. Since it looks like the computation of change sets is broken I have disabled the tests, rather than disabling the assertion. It seems that during residential compilation, the result type of a constructor can be a different version of the enclosing class. I could not reproduce this --- test/files/disabled/A.scala | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 test/files/disabled/A.scala (limited to 'test/files/disabled/A.scala') diff --git a/test/files/disabled/A.scala b/test/files/disabled/A.scala new file mode 100644 index 0000000000..c070faf978 --- /dev/null +++ b/test/files/disabled/A.scala @@ -0,0 +1,11 @@ +trait As { + trait C extends D { + override def foo = this /// Shouldn't cause the change + override def foo(act: List[D]) = this + } + + abstract class D{ + def foo: D = this + def foo(act: List[D]) = this + } +} -- cgit v1.2.3