diff options
Diffstat (limited to 'test/pending/pos/t2127.scala')
-rw-r--r-- | test/pending/pos/t2127.scala | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/pending/pos/t2127.scala b/test/pending/pos/t2127.scala new file mode 100644 index 0000000000..a196a95c58 --- /dev/null +++ b/test/pending/pos/t2127.scala @@ -0,0 +1,29 @@ + + +As discussed here: http://www.nabble.com/Companion-object-constructor-visibility-td24342096.html + +//Simplified example: + + class Foo private (val value : Int) + + abstract class Bar(val ctor : (Int) => Foo) + + object Foo extends Bar(new Foo(_)) //<--- ILLEGAL ACCESS + +//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. |