summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/sensitive.check4
-rw-r--r--test/files/neg/sensitive.scala19
2 files changed, 23 insertions, 0 deletions
diff --git a/test/files/neg/sensitive.check b/test/files/neg/sensitive.check
new file mode 100644
index 0000000000..aa7c65a3b1
--- /dev/null
+++ b/test/files/neg/sensitive.check
@@ -0,0 +1,4 @@
+sensitive.scala:17: error: constructor Sensitive cannot be accessed in object Attacker
+ val y = new Sensitive()
+ ^
+one error found
diff --git a/test/files/neg/sensitive.scala b/test/files/neg/sensitive.scala
new file mode 100644
index 0000000000..f435a385e1
--- /dev/null
+++ b/test/files/neg/sensitive.scala
@@ -0,0 +1,19 @@
+class Certificate{}
+
+object Admin extends Certificate;
+
+class SecurityViolationException extends Exception
+
+object Sensitive {
+ def makeSensitive(credentials: Certificate): Sensitive =
+ if (credentials == Admin) new Sensitive()
+ else throw new SecurityViolationException
+}
+class Sensitive private () {
+}
+
+object Attacker {
+ val x = Sensitive.makeSensitive(null)
+ val y = new Sensitive()
+}
+