diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/protected-constructors.check | 25 | ||||
-rw-r--r-- | test/files/neg/protected-constructors.scala | 21 |
2 files changed, 46 insertions, 0 deletions
diff --git a/test/files/neg/protected-constructors.check b/test/files/neg/protected-constructors.check new file mode 100644 index 0000000000..d6b9221a49 --- /dev/null +++ b/test/files/neg/protected-constructors.check @@ -0,0 +1,25 @@ +protected-constructors.scala:17: error: too many arguments for constructor Foo1: ()dingus.Foo1 + val foo1 = new Foo1("abc") + ^ +protected-constructors.scala:18: error: constructor Foo2 in class Foo2 cannot be accessed in object P + Access to protected constructor Foo2 not permitted because + enclosing class object P in package hungus is not a subclass of + class Foo2 in package dingus where target is defined + val foo2 = new Foo2("abc") + ^ +protected-constructors.scala:19: error: class Foo3 in object Ding cannot be accessed in object dingus.Ding + Access to protected class Foo3 not permitted because + enclosing class object P in package hungus is not a subclass of + object Ding in package dingus where target is defined + val foo3 = new Ding.Foo3("abc") + ^ +protected-constructors.scala:15: error: class Foo3 in object Ding cannot be accessed in object dingus.Ding + Access to protected class Foo3 not permitted because + enclosing class object P in package hungus is not a subclass of + object Ding in package dingus where target is defined + class Bar3 extends Ding.Foo3("abc") + ^ +protected-constructors.scala:15: error: too many arguments for constructor Object: ()java.lang.Object + class Bar3 extends Ding.Foo3("abc") + ^ +5 errors found diff --git a/test/files/neg/protected-constructors.scala b/test/files/neg/protected-constructors.scala new file mode 100644 index 0000000000..2838caf09c --- /dev/null +++ b/test/files/neg/protected-constructors.scala @@ -0,0 +1,21 @@ +package dingus { + class Foo1() { protected def this(name: String) = this() } + class Foo2 protected (name: String) { } + object Ding { + protected class Foo3(name: String) { } + } +} + +package hungus { + import dingus._ + + object P { + class Bar1 extends Foo1("abc") + class Bar2 extends Foo2("abc") + class Bar3 extends Ding.Foo3("abc") + + val foo1 = new Foo1("abc") + val foo2 = new Foo2("abc") + val foo3 = new Ding.Foo3("abc") + } +} |