|
Michel edited on 2004-02-03 13:50:49.0
|
Here is a simplified example:
class A extends java.util.Hashtable {
class B { def f = rehash() }
}
object Main {
def main(args: Array[String]): Unit = {
val a = new A;
val b = new a.B;
b.f
}
}
The problem is that B accesses a protected method of the super-class of its outer class, namely A. ExplicitOuter should find all the instances of such calls and provide forwarding methods to be used by its enclosing classes. In this example, A should be augmented with a forwarding rehash method, and method f would simply use it instead of rehash itself.
|
|
Michel edited on 2004-02-03 15:59:36.0
|
|
Assigned to Philippe (I thought I had done it before, but apparently not).
|
|
Philippe edited on 2004-04-02 15:44:12.0
|
|
Added creation of access methods for hidden methods/fields accessed from inner classes in ExplicitOuter.
|
|
Gilles edited on 2005-12-15 14:50:05.0
|
|
This bug is open again for NSC!
|
|
Lex edited on 2006-03-28 14:12:28.0
|
|
This problem still occurs as of scalac 2.1.0.
|
|
Nikolay edited on 2006-09-13 09:01:29.0
|
|
Reassigned from Philippe to Martin
|
|
Martin edited on 2006-10-26 16:49:43.0
|
|
Reassigned to Iulian (this bug is really being pushed around!)
|
|
Iulian edited on 2006-10-26 18:31:43.0
|
|
|