aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/java-interop
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/java-interop')
-rw-r--r--tests/pos/java-interop/t0288/Foo.scala9
-rw-r--r--tests/pos/java-interop/t0288/Outer.java9
-rw-r--r--tests/pos/java-interop/t0695/JavaClass.java5
-rw-r--r--tests/pos/java-interop/t0695/Test.scala3
-rw-r--r--tests/pos/java-interop/t1101/J.java1
-rw-r--r--tests/pos/java-interop/t1101/S.scala1
-rw-r--r--tests/pos/java-interop/t1102/J.java4
-rw-r--r--tests/pos/java-interop/t1102/S.scala1
-rw-r--r--tests/pos/java-interop/t1150/J.java4
-rw-r--r--tests/pos/java-interop/t1150/S.scala4
-rw-r--r--tests/pos/java-interop/t1152/J.java1
-rw-r--r--tests/pos/java-interop/t1152/S.scala2
-rw-r--r--tests/pos/java-interop/t1176/J.java4
-rw-r--r--tests/pos/java-interop/t1176/S.scala1
-rw-r--r--tests/pos/java-interop/t1186/t1186.java8
-rw-r--r--tests/pos/java-interop/t1196/J.java1
-rw-r--r--tests/pos/java-interop/t1196/S.scala1
-rw-r--r--tests/pos/java-interop/t1197/J.java2
-rw-r--r--tests/pos/java-interop/t1197/S.scala2
-rw-r--r--tests/pos/java-interop/t1203b/J.java1
-rw-r--r--tests/pos/java-interop/t1203b/S.scala1
-rw-r--r--tests/pos/java-interop/t1230/J.java1
-rw-r--r--tests/pos/java-interop/t1230/S.scala1
-rw-r--r--tests/pos/java-interop/t1231/J.java1
-rw-r--r--tests/pos/java-interop/t1231/S.scala1
-rw-r--r--tests/pos/java-interop/t1232/J.java2
-rw-r--r--tests/pos/java-interop/t1232/J2.java2
-rw-r--r--tests/pos/java-interop/t1232/S.scala2
-rw-r--r--tests/pos/java-interop/t1235/Test.java9
-rw-r--r--tests/pos/java-interop/t1254/t1254.java28
-rw-r--r--tests/pos/java-interop/t1263/Test.java17
-rw-r--r--tests/pos/java-interop/t1263/test.scala10
-rw-r--r--tests/pos/java-interop/t1409/AbstractImpl.java3
-rw-r--r--tests/pos/java-interop/t1409/ConcreteImpl.scala3
-rw-r--r--tests/pos/java-interop/t1409/OuterInterface.java5
-rw-r--r--tests/pos/java-interop/t1642/JavaCallingScalaHashMap.java8
-rw-r--r--tests/pos/java-interop/t1711/Seq.scala12
-rw-r--r--tests/pos/java-interop/t1711/Test.java6
-rw-r--r--tests/pos/java-interop/t1745/J.java10
-rw-r--r--tests/pos/java-interop/t1745/S.scala7
-rw-r--r--tests/pos/java-interop/t1751/A1_2.scala2
-rw-r--r--tests/pos/java-interop/t1751/A2_1.scala2
-rw-r--r--tests/pos/java-interop/t1751/SuiteClasses.java3
-rw-r--r--tests/pos/java-interop/t1782/Ann.java3
-rw-r--r--tests/pos/java-interop/t1782/Days.java3
-rw-r--r--tests/pos/java-interop/t1782/ImplementedBy.java3
-rw-r--r--tests/pos/java-interop/t1782/Test_1.scala16
-rw-r--r--tests/pos/java-interop/t1836/J.java1
-rw-r--r--tests/pos/java-interop/t1836/S.scala1
-rw-r--r--tests/pos/java-interop/t1840/J.java4
-rw-r--r--tests/pos/java-interop/t1840/S.scala2
-rw-r--r--tests/pos/java-interop/t1937/NumberGenerator.java7
-rw-r--r--tests/pos/java-interop/t2377/Q.java12
-rw-r--r--tests/pos/java-interop/t2377/a.scala8
-rw-r--r--tests/pos/java-interop/t2409/J.java4
-rw-r--r--tests/pos/java-interop/t2409/t2409.scala1
-rw-r--r--tests/pos/java-interop/t2413/TestJava.java7
-rw-r--r--tests/pos/java-interop/t2413/TestScalac.scala23
-rwxr-xr-xtests/pos/java-interop/t2433/A.java4
-rwxr-xr-xtests/pos/java-interop/t2433/B.java4
-rwxr-xr-xtests/pos/java-interop/t2433/Test.scala3
-rw-r--r--tests/pos/java-interop/t2464/JavaOne.java5
-rw-r--r--tests/pos/java-interop/t2464/ScalaOne_1.scala6
-rw-r--r--tests/pos/java-interop/t2464/t2464_2.scala3
-rw-r--r--tests/pos/java-interop/t2764/Ann.java5
-rw-r--r--tests/pos/java-interop/t2764/Enum.java5
-rw-r--r--tests/pos/java-interop/t2764/Use.scala6
-rw-r--r--tests/pos/java-interop/t294/Ann.java3
-rw-r--r--tests/pos/java-interop/t294/Ann2.java3
-rw-r--r--tests/pos/java-interop/t294/Test_1.scala7
-rw-r--r--tests/pos/java-interop/t294/Test_2.scala1
-rw-r--r--tests/pos/java-interop/t2940/Cycle.java3
-rw-r--r--tests/pos/java-interop/t2940/Error.scala12
-rw-r--r--tests/pos/java-interop/t2956/BeanDefinitionVisitor.java6
-rwxr-xr-xtests/pos/java-interop/t2956/t2956.scala7
75 files changed, 378 insertions, 0 deletions
diff --git a/tests/pos/java-interop/t0288/Foo.scala b/tests/pos/java-interop/t0288/Foo.scala
new file mode 100644
index 000000000..778ba65f5
--- /dev/null
+++ b/tests/pos/java-interop/t0288/Foo.scala
@@ -0,0 +1,9 @@
+package test2;
+
+import test.Outer;
+
+class Foo extends Outer{
+
+ val bar = new Inner(); // Shouldn't this work?
+
+}
diff --git a/tests/pos/java-interop/t0288/Outer.java b/tests/pos/java-interop/t0288/Outer.java
new file mode 100644
index 000000000..bea3e3f8d
--- /dev/null
+++ b/tests/pos/java-interop/t0288/Outer.java
@@ -0,0 +1,9 @@
+package test;
+
+public class Outer{
+
+ public class Inner{
+
+ }
+
+}
diff --git a/tests/pos/java-interop/t0695/JavaClass.java b/tests/pos/java-interop/t0695/JavaClass.java
new file mode 100644
index 000000000..a765f7e32
--- /dev/null
+++ b/tests/pos/java-interop/t0695/JavaClass.java
@@ -0,0 +1,5 @@
+public class JavaClass<A> {
+ class InnerClass {
+ public A method() { return null; }
+ }
+}
diff --git a/tests/pos/java-interop/t0695/Test.scala b/tests/pos/java-interop/t0695/Test.scala
new file mode 100644
index 000000000..7318867bf
--- /dev/null
+++ b/tests/pos/java-interop/t0695/Test.scala
@@ -0,0 +1,3 @@
+object Test extends JavaClass[AnyRef] {
+ var field: InnerClass = null
+}
diff --git a/tests/pos/java-interop/t1101/J.java b/tests/pos/java-interop/t1101/J.java
new file mode 100644
index 000000000..2bc1d53e0
--- /dev/null
+++ b/tests/pos/java-interop/t1101/J.java
@@ -0,0 +1 @@
+class J { enum E { E1 } }
diff --git a/tests/pos/java-interop/t1101/S.scala b/tests/pos/java-interop/t1101/S.scala
new file mode 100644
index 000000000..af7a591e5
--- /dev/null
+++ b/tests/pos/java-interop/t1101/S.scala
@@ -0,0 +1 @@
+class S { val x: J.E = null; System.out.println(J.E.E1) }
diff --git a/tests/pos/java-interop/t1102/J.java b/tests/pos/java-interop/t1102/J.java
new file mode 100644
index 000000000..530102b91
--- /dev/null
+++ b/tests/pos/java-interop/t1102/J.java
@@ -0,0 +1,4 @@
+class J {
+ enum E { E1 }
+ void foo(E e) { }
+}
diff --git a/tests/pos/java-interop/t1102/S.scala b/tests/pos/java-interop/t1102/S.scala
new file mode 100644
index 000000000..9beee8d90
--- /dev/null
+++ b/tests/pos/java-interop/t1102/S.scala
@@ -0,0 +1 @@
+class S(j:J) { j.foo(J.E.E1) }
diff --git a/tests/pos/java-interop/t1150/J.java b/tests/pos/java-interop/t1150/J.java
new file mode 100644
index 000000000..68fa04a17
--- /dev/null
+++ b/tests/pos/java-interop/t1150/J.java
@@ -0,0 +1,4 @@
+class J {
+ static void bbb (Boolean b) { }
+ static void ddd (Double d) { }
+}
diff --git a/tests/pos/java-interop/t1150/S.scala b/tests/pos/java-interop/t1150/S.scala
new file mode 100644
index 000000000..41dd06403
--- /dev/null
+++ b/tests/pos/java-interop/t1150/S.scala
@@ -0,0 +1,4 @@
+object S {
+ J.bbb(new java.lang.Boolean(true))
+ J.ddd(new java.lang.Double(0))
+}
diff --git a/tests/pos/java-interop/t1152/J.java b/tests/pos/java-interop/t1152/J.java
new file mode 100644
index 000000000..6e562e573
--- /dev/null
+++ b/tests/pos/java-interop/t1152/J.java
@@ -0,0 +1 @@
+class J { java.util.List<String> k = null; }
diff --git a/tests/pos/java-interop/t1152/S.scala b/tests/pos/java-interop/t1152/S.scala
new file mode 100644
index 000000000..7f751c509
--- /dev/null
+++ b/tests/pos/java-interop/t1152/S.scala
@@ -0,0 +1,2 @@
+class S2(fn:(J)=>Any)
+object S { new S2(_.k) }
diff --git a/tests/pos/java-interop/t1176/J.java b/tests/pos/java-interop/t1176/J.java
new file mode 100644
index 000000000..0d82c75fc
--- /dev/null
+++ b/tests/pos/java-interop/t1176/J.java
@@ -0,0 +1,4 @@
+class J {
+ J() { }
+ J( java.util.Collection<?> collection ) { }
+}
diff --git a/tests/pos/java-interop/t1176/S.scala b/tests/pos/java-interop/t1176/S.scala
new file mode 100644
index 000000000..a7fc3e0ce
--- /dev/null
+++ b/tests/pos/java-interop/t1176/S.scala
@@ -0,0 +1 @@
+class S { new J }
diff --git a/tests/pos/java-interop/t1186/t1186.java b/tests/pos/java-interop/t1186/t1186.java
new file mode 100644
index 000000000..5f2607623
--- /dev/null
+++ b/tests/pos/java-interop/t1186/t1186.java
@@ -0,0 +1,8 @@
+import scala.collection.immutable.Map;
+
+class Test {
+
+ void foo() {
+ Map<String, String> map = null;
+ }
+}
diff --git a/tests/pos/java-interop/t1196/J.java b/tests/pos/java-interop/t1196/J.java
new file mode 100644
index 000000000..2ec7a711b
--- /dev/null
+++ b/tests/pos/java-interop/t1196/J.java
@@ -0,0 +1 @@
+class J { static void foo(Class c) { } }
diff --git a/tests/pos/java-interop/t1196/S.scala b/tests/pos/java-interop/t1196/S.scala
new file mode 100644
index 000000000..f17cd249a
--- /dev/null
+++ b/tests/pos/java-interop/t1196/S.scala
@@ -0,0 +1 @@
+object S { J.foo(null) }
diff --git a/tests/pos/java-interop/t1197/J.java b/tests/pos/java-interop/t1197/J.java
new file mode 100644
index 000000000..b4e0a4255
--- /dev/null
+++ b/tests/pos/java-interop/t1197/J.java
@@ -0,0 +1,2 @@
+class J { interface K { } }
+
diff --git a/tests/pos/java-interop/t1197/S.scala b/tests/pos/java-interop/t1197/S.scala
new file mode 100644
index 000000000..7c9c15440
--- /dev/null
+++ b/tests/pos/java-interop/t1197/S.scala
@@ -0,0 +1,2 @@
+object S extends J.K
+
diff --git a/tests/pos/java-interop/t1203b/J.java b/tests/pos/java-interop/t1203b/J.java
new file mode 100644
index 000000000..7fae118e0
--- /dev/null
+++ b/tests/pos/java-interop/t1203b/J.java
@@ -0,0 +1 @@
+interface J { int j = 200 ; }
diff --git a/tests/pos/java-interop/t1203b/S.scala b/tests/pos/java-interop/t1203b/S.scala
new file mode 100644
index 000000000..68eac4bf6
--- /dev/null
+++ b/tests/pos/java-interop/t1203b/S.scala
@@ -0,0 +1 @@
+object S { J.j }
diff --git a/tests/pos/java-interop/t1230/J.java b/tests/pos/java-interop/t1230/J.java
new file mode 100644
index 000000000..35aefd250
--- /dev/null
+++ b/tests/pos/java-interop/t1230/J.java
@@ -0,0 +1 @@
+class J { public int foo ; }
diff --git a/tests/pos/java-interop/t1230/S.scala b/tests/pos/java-interop/t1230/S.scala
new file mode 100644
index 000000000..530dd4b85
--- /dev/null
+++ b/tests/pos/java-interop/t1230/S.scala
@@ -0,0 +1 @@
+object S extends App { (new J).foo = 5 }
diff --git a/tests/pos/java-interop/t1231/J.java b/tests/pos/java-interop/t1231/J.java
new file mode 100644
index 000000000..6b24205e5
--- /dev/null
+++ b/tests/pos/java-interop/t1231/J.java
@@ -0,0 +1 @@
+enum J { j1 }
diff --git a/tests/pos/java-interop/t1231/S.scala b/tests/pos/java-interop/t1231/S.scala
new file mode 100644
index 000000000..f14aa2561
--- /dev/null
+++ b/tests/pos/java-interop/t1231/S.scala
@@ -0,0 +1 @@
+object S extends App { println(J.j1) }
diff --git a/tests/pos/java-interop/t1232/J.java b/tests/pos/java-interop/t1232/J.java
new file mode 100644
index 000000000..2d9e3bbd5
--- /dev/null
+++ b/tests/pos/java-interop/t1232/J.java
@@ -0,0 +1,2 @@
+package j;
+public class J { public enum E { e1 } }
diff --git a/tests/pos/java-interop/t1232/J2.java b/tests/pos/java-interop/t1232/J2.java
new file mode 100644
index 000000000..29237780a
--- /dev/null
+++ b/tests/pos/java-interop/t1232/J2.java
@@ -0,0 +1,2 @@
+import s.S;
+class J2 { }
diff --git a/tests/pos/java-interop/t1232/S.scala b/tests/pos/java-interop/t1232/S.scala
new file mode 100644
index 000000000..1b6bca732
--- /dev/null
+++ b/tests/pos/java-interop/t1232/S.scala
@@ -0,0 +1,2 @@
+package s
+class S { j.J.E.e1 }
diff --git a/tests/pos/java-interop/t1235/Test.java b/tests/pos/java-interop/t1235/Test.java
new file mode 100644
index 000000000..7bb83a849
--- /dev/null
+++ b/tests/pos/java-interop/t1235/Test.java
@@ -0,0 +1,9 @@
+import scala.collection.immutable.HashMap;
+
+public class Test {
+
+ void foo() {
+ new HashMap<String, String>();
+ }
+}
+
diff --git a/tests/pos/java-interop/t1254/t1254.java b/tests/pos/java-interop/t1254/t1254.java
new file mode 100644
index 000000000..17e1c60bf
--- /dev/null
+++ b/tests/pos/java-interop/t1254/t1254.java
@@ -0,0 +1,28 @@
+/* Taken from ticket #1254. Tests Java signatures in mirror classes and that
+ Nothing is translated to Nothing$.
+*/
+
+import scala.None;
+
+// This compiles with javac but fails with Eclipse java compiler:
+// 'The type scala.Nothing cannot be resolved. It is indirectly referenced from required .class files'
+class NothingBug3 {
+ public NothingBug3() {
+ scala.Option<?> o = scala.None$.MODULE$;
+
+ test(o);
+ None.toLeft(new scala.runtime.AbstractFunction0<Integer>() {
+ public Integer apply() { return 0; }
+ });
+ }
+
+ public <T>void test(scala.Option<T> f) {}
+}
+
+// This compiles with javac but fails with Eclipse java compiler:
+// 'The type scala.Nothing cannot be resolved. It is indirectly referenced from required .class files'
+class NothingBug4 {
+ public NothingBug4() {
+ scala.Option o = scala.None$.MODULE$;
+ }
+}
diff --git a/tests/pos/java-interop/t1263/Test.java b/tests/pos/java-interop/t1263/Test.java
new file mode 100644
index 000000000..1718a9909
--- /dev/null
+++ b/tests/pos/java-interop/t1263/Test.java
@@ -0,0 +1,17 @@
+package test;
+
+import java.rmi.RemoteException;
+
+import test.Map;
+
+@SuppressWarnings("unchecked")
+public class Test implements Map<String, String> {
+ public Map.MapTo plus(String o) {
+ return null;
+ }
+
+ public int $tag() throws RemoteException {
+ return 0;
+ }
+}
+
diff --git a/tests/pos/java-interop/t1263/test.scala b/tests/pos/java-interop/t1263/test.scala
new file mode 100644
index 000000000..92d8c1cdf
--- /dev/null
+++ b/tests/pos/java-interop/t1263/test.scala
@@ -0,0 +1,10 @@
+package test
+
+trait Map[A, +B] {
+ def plus(key: A): MapTo = new MapTo(key)
+
+ class MapTo(key: A) {
+ def arrow [B1 >: B](value: B1) = null
+ }
+}
+
diff --git a/tests/pos/java-interop/t1409/AbstractImpl.java b/tests/pos/java-interop/t1409/AbstractImpl.java
new file mode 100644
index 000000000..b22a94fa1
--- /dev/null
+++ b/tests/pos/java-interop/t1409/AbstractImpl.java
@@ -0,0 +1,3 @@
+public abstract class AbstractImpl implements OuterInterface {
+ public abstract InnerInterface create();
+ }
diff --git a/tests/pos/java-interop/t1409/ConcreteImpl.scala b/tests/pos/java-interop/t1409/ConcreteImpl.scala
new file mode 100644
index 000000000..d427e957e
--- /dev/null
+++ b/tests/pos/java-interop/t1409/ConcreteImpl.scala
@@ -0,0 +1,3 @@
+class ConcreteImpl extends AbstractImpl {
+ def create : OuterInterface.InnerInterface = null
+ }
diff --git a/tests/pos/java-interop/t1409/OuterInterface.java b/tests/pos/java-interop/t1409/OuterInterface.java
new file mode 100644
index 000000000..dd288ceea
--- /dev/null
+++ b/tests/pos/java-interop/t1409/OuterInterface.java
@@ -0,0 +1,5 @@
+public interface OuterInterface {
+ public interface InnerInterface {
+ public void foo();
+ }
+ }
diff --git a/tests/pos/java-interop/t1642/JavaCallingScalaHashMap.java b/tests/pos/java-interop/t1642/JavaCallingScalaHashMap.java
new file mode 100644
index 000000000..976e465ff
--- /dev/null
+++ b/tests/pos/java-interop/t1642/JavaCallingScalaHashMap.java
@@ -0,0 +1,8 @@
+import scala.collection.immutable.HashMap;
+import scala.collection.immutable.Map;
+
+public class JavaCallingScalaHashMap {
+ public static void main( String[] args ) {
+ Map<String, Integer> hashMap = new HashMap<String, Integer>();
+ }
+}
diff --git a/tests/pos/java-interop/t1711/Seq.scala b/tests/pos/java-interop/t1711/Seq.scala
new file mode 100644
index 000000000..c18f05cd7
--- /dev/null
+++ b/tests/pos/java-interop/t1711/Seq.scala
@@ -0,0 +1,12 @@
+package com
+
+object Sequence {
+
+ def filteringFunction[V](filter: V => Boolean): List[V] => List[V] = {
+ def include(v: V) =
+ filter(v)
+ (l: List[V]) => l.filter(include)
+ }
+
+}
+
diff --git a/tests/pos/java-interop/t1711/Test.java b/tests/pos/java-interop/t1711/Test.java
new file mode 100644
index 000000000..5ec0f2297
--- /dev/null
+++ b/tests/pos/java-interop/t1711/Test.java
@@ -0,0 +1,6 @@
+import com.Sequence;
+
+public class Test {
+ void foo() {
+ }
+}
diff --git a/tests/pos/java-interop/t1745/J.java b/tests/pos/java-interop/t1745/J.java
new file mode 100644
index 000000000..8444eabb2
--- /dev/null
+++ b/tests/pos/java-interop/t1745/J.java
@@ -0,0 +1,10 @@
+class J {
+ S1 s1;
+ S2 s2;
+
+ String s = bar(S3.foo(), S3.bar("def"));
+
+ private String bar(String s1, String s2) {
+ return s1 + s2;
+ }
+}
diff --git a/tests/pos/java-interop/t1745/S.scala b/tests/pos/java-interop/t1745/S.scala
new file mode 100644
index 000000000..84c437133
--- /dev/null
+++ b/tests/pos/java-interop/t1745/S.scala
@@ -0,0 +1,7 @@
+case class S1(n: Int) { }
+case class S2(n: Int, p: Int) { }
+class S3 { }
+object S3 {
+ def foo() = "abc"
+ def bar[T](x: T): T = x
+}
diff --git a/tests/pos/java-interop/t1751/A1_2.scala b/tests/pos/java-interop/t1751/A1_2.scala
new file mode 100644
index 000000000..354d5eecd
--- /dev/null
+++ b/tests/pos/java-interop/t1751/A1_2.scala
@@ -0,0 +1,2 @@
+@SuiteClasses(Array(classOf[A2]))
+class A1
diff --git a/tests/pos/java-interop/t1751/A2_1.scala b/tests/pos/java-interop/t1751/A2_1.scala
new file mode 100644
index 000000000..c768062e4
--- /dev/null
+++ b/tests/pos/java-interop/t1751/A2_1.scala
@@ -0,0 +1,2 @@
+@SuiteClasses(Array())
+class A2
diff --git a/tests/pos/java-interop/t1751/SuiteClasses.java b/tests/pos/java-interop/t1751/SuiteClasses.java
new file mode 100644
index 000000000..a415e4f57
--- /dev/null
+++ b/tests/pos/java-interop/t1751/SuiteClasses.java
@@ -0,0 +1,3 @@
+public @interface SuiteClasses {
+ public Class<?>[] value();
+}
diff --git a/tests/pos/java-interop/t1782/Ann.java b/tests/pos/java-interop/t1782/Ann.java
new file mode 100644
index 000000000..0dcfbd2ed
--- /dev/null
+++ b/tests/pos/java-interop/t1782/Ann.java
@@ -0,0 +1,3 @@
+public @interface Ann {
+ public Days value();
+}
diff --git a/tests/pos/java-interop/t1782/Days.java b/tests/pos/java-interop/t1782/Days.java
new file mode 100644
index 000000000..203a87b1c
--- /dev/null
+++ b/tests/pos/java-interop/t1782/Days.java
@@ -0,0 +1,3 @@
+public enum Days {
+ Friday, Sunday
+}
diff --git a/tests/pos/java-interop/t1782/ImplementedBy.java b/tests/pos/java-interop/t1782/ImplementedBy.java
new file mode 100644
index 000000000..6aa8b4fa9
--- /dev/null
+++ b/tests/pos/java-interop/t1782/ImplementedBy.java
@@ -0,0 +1,3 @@
+public @interface ImplementedBy {
+ public Class<?> value();
+}
diff --git a/tests/pos/java-interop/t1782/Test_1.scala b/tests/pos/java-interop/t1782/Test_1.scala
new file mode 100644
index 000000000..47495c082
--- /dev/null
+++ b/tests/pos/java-interop/t1782/Test_1.scala
@@ -0,0 +1,16 @@
+@ImplementedBy(classOf[Provider])
+trait Service {
+ def someMethod(): Unit
+}
+
+class Provider
+ extends Service
+{
+ // test enumeration java annotations
+ @Ann(Days.Friday) def someMethod() = ()
+
+ // #2103
+ @scala.beans.BeanProperty
+ @Ann(value = Days.Sunday)
+ val t2103 = "test"
+}
diff --git a/tests/pos/java-interop/t1836/J.java b/tests/pos/java-interop/t1836/J.java
new file mode 100644
index 000000000..a009a59e2
--- /dev/null
+++ b/tests/pos/java-interop/t1836/J.java
@@ -0,0 +1 @@
+public abstract class J<T> { protected J(T id) { } }
diff --git a/tests/pos/java-interop/t1836/S.scala b/tests/pos/java-interop/t1836/S.scala
new file mode 100644
index 000000000..88ce1063e
--- /dev/null
+++ b/tests/pos/java-interop/t1836/S.scala
@@ -0,0 +1 @@
+class S extends J("")
diff --git a/tests/pos/java-interop/t1840/J.java b/tests/pos/java-interop/t1840/J.java
new file mode 100644
index 000000000..fd98b6c4a
--- /dev/null
+++ b/tests/pos/java-interop/t1840/J.java
@@ -0,0 +1,4 @@
+package p;
+class J {
+ J() {}
+}
diff --git a/tests/pos/java-interop/t1840/S.scala b/tests/pos/java-interop/t1840/S.scala
new file mode 100644
index 000000000..ff513d2c1
--- /dev/null
+++ b/tests/pos/java-interop/t1840/S.scala
@@ -0,0 +1,2 @@
+package p
+class S { new J }
diff --git a/tests/pos/java-interop/t1937/NumberGenerator.java b/tests/pos/java-interop/t1937/NumberGenerator.java
new file mode 100644
index 000000000..59d604733
--- /dev/null
+++ b/tests/pos/java-interop/t1937/NumberGenerator.java
@@ -0,0 +1,7 @@
+package br.com.caelum.caelumweb2.money;
+
+public class NumberGenerator {
+ public String generate() {
+ return null;
+ }
+}
diff --git a/tests/pos/java-interop/t2377/Q.java b/tests/pos/java-interop/t2377/Q.java
new file mode 100644
index 000000000..e3d11c70e
--- /dev/null
+++ b/tests/pos/java-interop/t2377/Q.java
@@ -0,0 +1,12 @@
+public final class Q {
+ public static final class Stage {
+ public static Builder newBuilder() { return new Builder(); }
+ public static final class Builder { }
+ public Builder toBuilder() { return newBuilder(); }
+ }
+ public static final class WorkUnit {
+ public static Builder newBuilder() { return new Builder(); }
+ public static final class Builder { }
+ public Builder toBuilder() { return newBuilder(); }
+ }
+}
diff --git a/tests/pos/java-interop/t2377/a.scala b/tests/pos/java-interop/t2377/a.scala
new file mode 100644
index 000000000..bda59ce0d
--- /dev/null
+++ b/tests/pos/java-interop/t2377/a.scala
@@ -0,0 +1,8 @@
+import Q._
+
+class Bop(var workUnit: WorkUnit) {
+ def addStages(stageBuilder: Stage.Builder): Unit = {
+ val builder = workUnit.toBuilder
+ ()
+ }
+}
diff --git a/tests/pos/java-interop/t2409/J.java b/tests/pos/java-interop/t2409/J.java
new file mode 100644
index 000000000..6b7c45ff6
--- /dev/null
+++ b/tests/pos/java-interop/t2409/J.java
@@ -0,0 +1,4 @@
+class J {
+ static class J2 { }
+ J(J2 j2) { }
+}
diff --git a/tests/pos/java-interop/t2409/t2409.scala b/tests/pos/java-interop/t2409/t2409.scala
new file mode 100644
index 000000000..0412f7d82
--- /dev/null
+++ b/tests/pos/java-interop/t2409/t2409.scala
@@ -0,0 +1 @@
+object S { new J(null) }
diff --git a/tests/pos/java-interop/t2413/TestJava.java b/tests/pos/java-interop/t2413/TestJava.java
new file mode 100644
index 000000000..252c01fbc
--- /dev/null
+++ b/tests/pos/java-interop/t2413/TestJava.java
@@ -0,0 +1,7 @@
+package pack;
+
+public class TestJava {
+ protected String repeatParam(String ... items) {
+ return "nothing";
+ }
+}
diff --git a/tests/pos/java-interop/t2413/TestScalac.scala b/tests/pos/java-interop/t2413/TestScalac.scala
new file mode 100644
index 000000000..098e852dd
--- /dev/null
+++ b/tests/pos/java-interop/t2413/TestScalac.scala
@@ -0,0 +1,23 @@
+import pack.TestJava
+
+class Foo extends TestJava {
+
+ // THIS METHOD YIELDS TO CRASH
+/* def foomethod : Option[String] => Unit = {
+ case None =>
+ val path = repeatParam("s","a","b","c")
+ ()
+ case Some(error) =>
+ ()
+ }
+
+ // THIS IS OK
+ def foomethod2 : String = repeatParam("s","a");
+
+ // THIS IS OK
+ val aVal = repeatParam("1","2","3") */
+
+ // THIS YIELDS TO CRASH
+ for (a <- 1 to 4 ; anotherVal = repeatParam("1","2","3"))
+ yield anotherVal
+}
diff --git a/tests/pos/java-interop/t2433/A.java b/tests/pos/java-interop/t2433/A.java
new file mode 100755
index 000000000..340690c40
--- /dev/null
+++ b/tests/pos/java-interop/t2433/A.java
@@ -0,0 +1,4 @@
+class A223 extends B223.Inner {
+ static class Inner {}
+ void foo() {}
+} \ No newline at end of file
diff --git a/tests/pos/java-interop/t2433/B.java b/tests/pos/java-interop/t2433/B.java
new file mode 100755
index 000000000..151dd71ca
--- /dev/null
+++ b/tests/pos/java-interop/t2433/B.java
@@ -0,0 +1,4 @@
+class B223 {
+ static class Inner {}
+ void m(A223.Inner x) {}
+} \ No newline at end of file
diff --git a/tests/pos/java-interop/t2433/Test.scala b/tests/pos/java-interop/t2433/Test.scala
new file mode 100755
index 000000000..02fd89b64
--- /dev/null
+++ b/tests/pos/java-interop/t2433/Test.scala
@@ -0,0 +1,3 @@
+object Test {
+ (new A223).foo()
+}
diff --git a/tests/pos/java-interop/t2464/JavaOne.java b/tests/pos/java-interop/t2464/JavaOne.java
new file mode 100644
index 000000000..ff36868a0
--- /dev/null
+++ b/tests/pos/java-interop/t2464/JavaOne.java
@@ -0,0 +1,5 @@
+class ClassTwo {
+ public static class Child {
+ public void func2() {return ;}
+ }
+}
diff --git a/tests/pos/java-interop/t2464/ScalaOne_1.scala b/tests/pos/java-interop/t2464/ScalaOne_1.scala
new file mode 100644
index 000000000..1caf8ecae
--- /dev/null
+++ b/tests/pos/java-interop/t2464/ScalaOne_1.scala
@@ -0,0 +1,6 @@
+class ScalaClassOne extends ClassTwo.Child {
+ def func4() = {
+ func2
+ }
+}
+
diff --git a/tests/pos/java-interop/t2464/t2464_2.scala b/tests/pos/java-interop/t2464/t2464_2.scala
new file mode 100644
index 000000000..13a52c952
--- /dev/null
+++ b/tests/pos/java-interop/t2464/t2464_2.scala
@@ -0,0 +1,3 @@
+object Test {
+ val c1 = new ScalaClassOne
+}
diff --git a/tests/pos/java-interop/t2764/Ann.java b/tests/pos/java-interop/t2764/Ann.java
new file mode 100644
index 000000000..184fc6e86
--- /dev/null
+++ b/tests/pos/java-interop/t2764/Ann.java
@@ -0,0 +1,5 @@
+package bippy;
+
+public @interface Ann {
+ Enum value();
+}
diff --git a/tests/pos/java-interop/t2764/Enum.java b/tests/pos/java-interop/t2764/Enum.java
new file mode 100644
index 000000000..fe0755953
--- /dev/null
+++ b/tests/pos/java-interop/t2764/Enum.java
@@ -0,0 +1,5 @@
+package bippy;
+
+public enum Enum {
+ VALUE;
+}
diff --git a/tests/pos/java-interop/t2764/Use.scala b/tests/pos/java-interop/t2764/Use.scala
new file mode 100644
index 000000000..b0c108907
--- /dev/null
+++ b/tests/pos/java-interop/t2764/Use.scala
@@ -0,0 +1,6 @@
+package bippy
+
+class Use {
+ @Ann(Enum.VALUE)
+ def foo: Unit = {}
+}
diff --git a/tests/pos/java-interop/t294/Ann.java b/tests/pos/java-interop/t294/Ann.java
new file mode 100644
index 000000000..934ca4629
--- /dev/null
+++ b/tests/pos/java-interop/t294/Ann.java
@@ -0,0 +1,3 @@
+public @interface Ann {
+ public Ann2[] nested();
+}
diff --git a/tests/pos/java-interop/t294/Ann2.java b/tests/pos/java-interop/t294/Ann2.java
new file mode 100644
index 000000000..025b79e79
--- /dev/null
+++ b/tests/pos/java-interop/t294/Ann2.java
@@ -0,0 +1,3 @@
+public @interface Ann2 {
+ public int value();
+}
diff --git a/tests/pos/java-interop/t294/Test_1.scala b/tests/pos/java-interop/t294/Test_1.scala
new file mode 100644
index 000000000..ff1f34b10
--- /dev/null
+++ b/tests/pos/java-interop/t294/Test_1.scala
@@ -0,0 +1,7 @@
+// also test pickling of java annotations; Test_2.scala will
+// read this class file
+@Ann(nested = Array(new Ann2(10))) class Test {
+ @Ann2(100) var ctx: Object = _
+ @Ann(nested = Array()) def foo = 10
+ @Ann(nested = Array(new Ann2(10), new Ann2(23))) val bam = -3
+}
diff --git a/tests/pos/java-interop/t294/Test_2.scala b/tests/pos/java-interop/t294/Test_2.scala
new file mode 100644
index 000000000..9fb1c6e17
--- /dev/null
+++ b/tests/pos/java-interop/t294/Test_2.scala
@@ -0,0 +1 @@
+class Test2 extends Test
diff --git a/tests/pos/java-interop/t2940/Cycle.java b/tests/pos/java-interop/t2940/Cycle.java
new file mode 100644
index 000000000..eef6c23b5
--- /dev/null
+++ b/tests/pos/java-interop/t2940/Cycle.java
@@ -0,0 +1,3 @@
+public interface Cycle<T extends Cycle<?>> {
+ void doStuff();
+} \ No newline at end of file
diff --git a/tests/pos/java-interop/t2940/Error.scala b/tests/pos/java-interop/t2940/Error.scala
new file mode 100644
index 000000000..92f08f580
--- /dev/null
+++ b/tests/pos/java-interop/t2940/Error.scala
@@ -0,0 +1,12 @@
+abstract class Error {
+ val c: Cycle[_]
+}
+
+object Test {
+ trait Quux[T] extends Cycle[Quux[T]]
+ val x = new Quux[Int] { def doStuff(): Unit = { } }
+
+ def main(args: Array[String]): Unit = {
+
+ }
+}
diff --git a/tests/pos/java-interop/t2956/BeanDefinitionVisitor.java b/tests/pos/java-interop/t2956/BeanDefinitionVisitor.java
new file mode 100644
index 000000000..2ff5daa25
--- /dev/null
+++ b/tests/pos/java-interop/t2956/BeanDefinitionVisitor.java
@@ -0,0 +1,6 @@
+import java.util.Map;
+public class BeanDefinitionVisitor {
+ @SuppressWarnings("unchecked")
+ protected void visitMap(Map<?, ?> mapVal) {
+ }
+}
diff --git a/tests/pos/java-interop/t2956/t2956.scala b/tests/pos/java-interop/t2956/t2956.scala
new file mode 100755
index 000000000..33803874b
--- /dev/null
+++ b/tests/pos/java-interop/t2956/t2956.scala
@@ -0,0 +1,7 @@
+import scala.collection.JavaConversions._
+
+class Outer {
+ protected class Inner extends BeanDefinitionVisitor {
+ protected def visitMap(mapVal: Map[_, _]): Unit = ()
+ }
+}