summaryrefslogtreecommitdiff
path: root/test/pending/pos/t2127.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/pending/pos/t2127.scala')
-rw-r--r--test/pending/pos/t2127.scala29
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.