diff options
Diffstat (limited to 'test/files/run/t2127.scala')
-rwxr-xr-x | test/files/run/t2127.scala | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/files/run/t2127.scala b/test/files/run/t2127.scala new file mode 100755 index 0000000000..869d8a38d6 --- /dev/null +++ b/test/files/run/t2127.scala @@ -0,0 +1,32 @@ +// Seems to be fixed in trunk + +// As discussed here: http://www.nabble.com/Companion-object-constructor-visibility-td24342096.html + +//Simplified example: + + class Test private (val value : Int) + + abstract class Bar(val ctor : (Int) => Test) + + object Test extends Bar(new Test(_)) { //<--- ILLEGAL ACCESS + def main(args: Array[String]){} + } + +//however the following is legal: +/* + class Foo private (val value : Int) + + abstract class Bar{ + + var ctor : (Int) => Foo + + } + + object Foo extends Bar{ + + ctor = new Foo(_) //<--- Legal access + + } + +The constructor invocation of Bar is done within the scope of object Foo's constructor, and therefor the private constructor of Foo should be visible and accessible. +*/ |