diff options
author | Paul Phillips <paulp@improving.org> | 2012-03-03 19:18:11 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-03-04 11:42:38 -0800 |
commit | f708b87e559a6402205c9c9d8b2b62ee324fc148 (patch) | |
tree | 234e5be5da9e9c6ff2ff8801ea1f058011bfabc3 /test | |
parent | fb87f2de763e558c8639905ea8dfb447b5212cf7 (diff) | |
download | scala-f708b87e559a6402205c9c9d8b2b62ee324fc148.tar.gz scala-f708b87e559a6402205c9c9d8b2b62ee324fc148.tar.bz2 scala-f708b87e559a6402205c9c9d8b2b62ee324fc148.zip |
Overcame trait/protected/java limitation.
I think this fixes SI-2296, the inability to access java protected
members from a trait which extends a java class. Counterexamples
appreciated. Closes SI-2296. Review by @dragos.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/t2296a.check | 2 | ||||
-rw-r--r-- | test/files/run/t2296a/J.java | 7 | ||||
-rw-r--r-- | test/files/run/t2296a/S.scala | 18 | ||||
-rw-r--r-- | test/files/run/t2296b.check | 2 | ||||
-rw-r--r-- | test/files/run/t2296b/J_1.java | 7 | ||||
-rw-r--r-- | test/files/run/t2296b/S_2.scala | 18 |
6 files changed, 54 insertions, 0 deletions
diff --git a/test/files/run/t2296a.check b/test/files/run/t2296a.check new file mode 100644 index 0000000000..f75aec9d81 --- /dev/null +++ b/test/files/run/t2296a.check @@ -0,0 +1,2 @@ +J.foo() +J.foo() diff --git a/test/files/run/t2296a/J.java b/test/files/run/t2296a/J.java new file mode 100644 index 0000000000..78ff3e9804 --- /dev/null +++ b/test/files/run/t2296a/J.java @@ -0,0 +1,7 @@ +package j; + +public class J { + protected void foo() { + System.out.println("J.foo()"); + } +}
\ No newline at end of file diff --git a/test/files/run/t2296a/S.scala b/test/files/run/t2296a/S.scala new file mode 100644 index 0000000000..532d038a42 --- /dev/null +++ b/test/files/run/t2296a/S.scala @@ -0,0 +1,18 @@ +package s { + import j.J + + trait S extends J { + def bar() { + foo() + } + } + + class SC extends J with S +} + +object Test { + def main(args : Array[String]) { + (new s.SC).bar() + (new s.S { }).bar() + } +}
\ No newline at end of file diff --git a/test/files/run/t2296b.check b/test/files/run/t2296b.check new file mode 100644 index 0000000000..f75aec9d81 --- /dev/null +++ b/test/files/run/t2296b.check @@ -0,0 +1,2 @@ +J.foo() +J.foo() diff --git a/test/files/run/t2296b/J_1.java b/test/files/run/t2296b/J_1.java new file mode 100644 index 0000000000..4c91d47073 --- /dev/null +++ b/test/files/run/t2296b/J_1.java @@ -0,0 +1,7 @@ +package j; + +public class J_1 { + protected void foo() { + System.out.println("J.foo()"); + } +}
\ No newline at end of file diff --git a/test/files/run/t2296b/S_2.scala b/test/files/run/t2296b/S_2.scala new file mode 100644 index 0000000000..6cdb0cfaba --- /dev/null +++ b/test/files/run/t2296b/S_2.scala @@ -0,0 +1,18 @@ +package s { + import j.J_1 + + trait S extends J_1 { + def bar() { + foo() + } + } + + class SC extends J_1 with S +} + +object Test { + def main(args : Array[String]) { + (new s.SC).bar() + (new s.S { }).bar() + } +} |