diff --git a/tests/disabled/reflect/run/primitive-sigs-2-new.check b/tests/run/primitive-sigs-2-new.check similarity index 60% rename from tests/disabled/reflect/run/primitive-sigs-2-new.check rename to tests/run/primitive-sigs-2-new.check index 59d864947c00..64c958040946 100644 --- a/tests/disabled/reflect/run/primitive-sigs-2-new.check +++ b/tests/run/primitive-sigs-2-new.check @@ -1,6 +1,9 @@ T List(A, char, class java.lang.Object) a +private static final float Arr.arr3$$anonfun$1(float[]) +private static final java.lang.Object Arr.arr4$$anonfun$1(java.lang.Object) +private static java.lang.Object Arr.$deserializeLambda$(java.lang.invoke.SerializedLambda) public java.lang.Object Arr.arr4(java.lang.Object[],scala.reflect.ClassTag) public float[] Arr.arr3(float[][]) public scala.collection.immutable.List Arr.arr2(java.lang.Character[]) diff --git a/tests/disabled/reflect/run/primitive-sigs-2-new.flags b/tests/run/primitive-sigs-2-new.flags similarity index 100% rename from tests/disabled/reflect/run/primitive-sigs-2-new.flags rename to tests/run/primitive-sigs-2-new.flags diff --git a/tests/disabled/reflect/run/primitive-sigs-2-new.scala b/tests/run/primitive-sigs-2-new.scala similarity index 92% rename from tests/disabled/reflect/run/primitive-sigs-2-new.scala rename to tests/run/primitive-sigs-2-new.scala index 1f39667b18f1..3de1f8ec5b42 100644 --- a/tests/disabled/reflect/run/primitive-sigs-2-new.scala +++ b/tests/run/primitive-sigs-2-new.scala @@ -1,3 +1,5 @@ +// scalajs: --skip +// (JVM-only, generic signatures) import scala.language.{ postfixOps } import scala.reflect.{ClassTag, classTag} @@ -28,7 +30,7 @@ object Test { def main(args: Array[String]): Unit = { println(c2.getGenericInterfaces.map(_.toString).sorted mkString " ") println(c1m ++ c2m sorted) - println(new C f) + println((new C()).f()) c3m.sorted foreach println } } diff --git a/tests/disabled/reflect/run/primitive-sigs-2-old.check b/tests/run/primitive-sigs-2-old.check similarity index 60% rename from tests/disabled/reflect/run/primitive-sigs-2-old.check rename to tests/run/primitive-sigs-2-old.check index feb06195256f..c7a472a542cf 100644 --- a/tests/disabled/reflect/run/primitive-sigs-2-old.check +++ b/tests/run/primitive-sigs-2-old.check @@ -1,6 +1,9 @@ T List(A, char, class java.lang.Object) a +private static final float Arr.arr3$$anonfun$1(float[]) +private static final java.lang.Object Arr.arr4$$anonfun$1(java.lang.Object) +private static java.lang.Object Arr.$deserializeLambda$(java.lang.invoke.SerializedLambda) public java.lang.Object Arr.arr4(java.lang.Object[],scala.reflect.Manifest) public float[] Arr.arr3(float[][]) public scala.collection.immutable.List Arr.arr2(java.lang.Character[]) diff --git a/tests/disabled/reflect/run/primitive-sigs-2-old.flags b/tests/run/primitive-sigs-2-old.flags similarity index 100% rename from tests/disabled/reflect/run/primitive-sigs-2-old.flags rename to tests/run/primitive-sigs-2-old.flags diff --git a/tests/disabled/reflect/run/primitive-sigs-2-old.scala b/tests/run/primitive-sigs-2-old.scala similarity index 94% rename from tests/disabled/reflect/run/primitive-sigs-2-old.scala rename to tests/run/primitive-sigs-2-old.scala index 16fe5ae55563..3e00fda690b1 100644 --- a/tests/disabled/reflect/run/primitive-sigs-2-old.scala +++ b/tests/run/primitive-sigs-2-old.scala @@ -1,3 +1,5 @@ +// scalajs: --skip +// (JVM-only, generic signatures) import scala.language.{ postfixOps } import java.{ lang => jl } @@ -35,7 +37,7 @@ object Test { def main(args: Array[String]): Unit = { println(c2.getGenericInterfaces.map(_.toString).sorted mkString " ") println(c1m ++ c2m sorted) - println(new C f) + println((new C()).f()) c3m.sorted foreach println } } diff --git a/tests/run/t11321.check b/tests/run/t11321.check new file mode 100644 index 000000000000..9f0979ba1dab --- /dev/null +++ b/tests/run/t11321.check @@ -0,0 +1,3 @@ +t11321.V: scala.Option +t11321.U: scala.Option +t11321.W: scala.Option>> diff --git a/tests/run/t11321.scala b/tests/run/t11321.scala new file mode 100644 index 000000000000..8838dd862334 --- /dev/null +++ b/tests/run/t11321.scala @@ -0,0 +1,29 @@ +// scalajs: --skip +// (JVM-only, generic signatures) + +package t11321 { + final class V(val x: Int) extends AnyVal + object V { def get: Option[V] = null } + + final class U(val y: String) extends AnyVal + object U { def get: Option[U] = null } + + final class W[T](val z: T) extends AnyVal + object W { def get: Option[W[Int => String]] = null } +} + + +object Test extends App { + def check[T](implicit tt: reflect.ClassTag[T]): Unit = { + val companion = tt.runtimeClass.getClassLoader.loadClass(tt.runtimeClass.getName + '$') + val get = companion.getMethod("get") + assert(get.getReturnType == classOf[Option[_]]) + println(s"${tt.runtimeClass.getName}: ${get.getGenericReturnType}") + } + + import t11321._ + + check[V] + check[U] + check[W[_]] +} diff --git a/tests/run/t11321b.check b/tests/run/t11321b.check new file mode 100644 index 000000000000..e008cea3575a --- /dev/null +++ b/tests/run/t11321b.check @@ -0,0 +1,2 @@ +minnow +class java.lang.String diff --git a/tests/run/t11321b/Foo_1.scala b/tests/run/t11321b/Foo_1.scala new file mode 100644 index 000000000000..21dfbb226644 --- /dev/null +++ b/tests/run/t11321b/Foo_1.scala @@ -0,0 +1,7 @@ +// scalajs: --skip +// (JVM-only, generic signatures) + +package t11321 + +class X(val x: String) extends AnyVal +class Foo { def b = Option(new X("minnow")); def get = b.get } diff --git a/tests/run/t11321b/Test_2.java b/tests/run/t11321b/Test_2.java new file mode 100644 index 000000000000..67de3c58089b --- /dev/null +++ b/tests/run/t11321b/Test_2.java @@ -0,0 +1,9 @@ +package t11321; + +public class Test_2 { + public static void main(String ...args) { + scala.Option b = new Foo().b(); + System.out.println(b.get().x()); + System.out.println(b.get().x().getClass()); + } +} diff --git a/tests/run/t11321b/Test_3.scala b/tests/run/t11321b/Test_3.scala new file mode 100644 index 000000000000..3eecd2a76cd5 --- /dev/null +++ b/tests/run/t11321b/Test_3.scala @@ -0,0 +1,5 @@ +import t11321.* + +object Test: + def main(args: Array[String]): Unit = + Test_2.main() diff --git a/tests/run/t1461.scala b/tests/run/t1461.scala new file mode 100644 index 000000000000..74db416f8ae0 --- /dev/null +++ b/tests/run/t1461.scala @@ -0,0 +1,19 @@ +// scalajs: --skip +// (JVM-only, generic signatures) + +object Test { + def main(args: Array[String]): Unit = { + val jl = classOf[Foo].getMethod("jl", classOf[Baz[_]]) + jl.getGenericParameterTypes // works fine + + val l = classOf[Foo].getMethod("l", classOf[Baz[_]]) + l.getGenericParameterTypes // works fine + } +} + +class Baz[T] + +class Foo { + def l(b: Baz[Long]): Unit = { } + def jl(b: Baz[java.lang.Long]): Unit = { } +} diff --git a/tests/disabled/reflect/run/t6344.check b/tests/run/t6344.check similarity index 75% rename from tests/disabled/reflect/run/t6344.check rename to tests/run/t6344.check index 8d9adac849d4..07766a3fec45 100644 --- a/tests/disabled/reflect/run/t6344.check +++ b/tests/run/t6344.check @@ -2,9 +2,9 @@ C0 public int C0.v1(int) public int C0.v1(int) public int C0.v3() -public int C0.v3() +public int C0.v3() public int C0.v4(int,scala.collection.immutable.List) -public int C0.v4(int,scala.collection.immutable.List>) +public int C0.v4(int,scala.collection.immutable.List>) public scala.collection.immutable.List C0.v2() public scala.collection.immutable.List> C0.v2() @@ -14,9 +14,9 @@ public java.lang.Object C1.v1(java.lang.Object) public java.lang.Object C1.v3() public java.lang.Object C1.v3() public java.lang.Object C1.v4(java.lang.Object,scala.collection.immutable.List) -public java.lang.Object C1.v4(java.lang.Object,scala.collection.immutable.List) +public java.lang.Object C1.v4(java.lang.Object,scala.collection.immutable.List>) public scala.collection.immutable.List C1.v2() -public scala.collection.immutable.List C1.v2() +public scala.collection.immutable.List> C1.v2() C2 public java.lang.String C2.v1(java.lang.String) @@ -24,29 +24,29 @@ public java.lang.String C2.v1(java.lang.String) public java.lang.String C2.v3() public java.lang.String C2.v3() public java.lang.String C2.v4(java.lang.String,scala.collection.immutable.List) -public java.lang.String C2.v4(java.lang.String,scala.collection.immutable.List) +public java.lang.String C2.v4(java.lang.String,scala.collection.immutable.List>) public scala.collection.immutable.List C2.v2() -public scala.collection.immutable.List C2.v2() +public scala.collection.immutable.List> C2.v2() C3 public java.lang.Object C3.v1(java.lang.Object) -public A C3.v1(A) +public java.lang.Object C3.v1(java.lang.Object) +public java.lang.Object C3.v3() public java.lang.Object C3.v3() -public A C3.v3() public java.lang.Object C3.v4(java.lang.Object,scala.collection.immutable.List) -public A C3.v4(A,scala.collection.immutable.List) +public java.lang.Object C3.v4(java.lang.Object,scala.collection.immutable.List>) public java.lang.Object C3.x() public A C3.x() public scala.collection.immutable.List C3.v2() -public scala.collection.immutable.List C3.v2() +public scala.collection.immutable.List> C3.v2() C4 public java.lang.Integer C4.v1(java.lang.Integer) -public int C4.v1(int) +public java.lang.Integer C4.v1(java.lang.Integer) +public java.lang.Integer C4.v3() public java.lang.Integer C4.v3() -public int C4.v3() public java.lang.Integer C4.v4(java.lang.Integer,scala.collection.immutable.List) -public int C4.v4(int,scala.collection.immutable.List>) +public java.lang.Integer C4.v4(java.lang.Integer,scala.collection.immutable.List>) public scala.collection.immutable.List C4.v2() public scala.collection.immutable.List> C4.v2() @@ -56,29 +56,29 @@ public java.lang.String C4B.v1(java.lang.String) public java.lang.String C4B.v3() public java.lang.String C4B.v3() public java.lang.String C4B.v4(java.lang.String,scala.collection.immutable.List) -public java.lang.String C4B.v4(java.lang.String,scala.collection.immutable.List) +public java.lang.String C4B.v4(java.lang.String,scala.collection.immutable.List>) public scala.collection.immutable.List C4B.v2() -public scala.collection.immutable.List C4B.v2() +public scala.collection.immutable.List> C4B.v2() C5 public double C5.f2(int,java.lang.Object,java.lang.String,double) public double C5.f2(int,java.lang.Object,java.lang.String,double) public int C5.f3(java.lang.Integer) -public int C5.f3(int) +public int C5.f3(java.lang.Integer) +public int C5.f4(java.lang.Integer) public int C5.f4(java.lang.Integer) -public int C5.f4(int) public int C5.f5(java.lang.Integer) -public int C5.f5(int) +public int C5.f5(java.lang.Integer) public java.lang.Object C5.f1(int,java.lang.Object,java.lang.String,java.lang.Object) -public A C5.f1(int,java.lang.Object,java.lang.String,A) +public java.lang.Object C5.f1(int,java.lang.Object,java.lang.String,java.lang.Object) C6 public java.lang.Object C6.f1(int,java.lang.Object,java.lang.String,java.lang.Object) -public A C6.f1(int,java.lang.Object,java.lang.String,A) +public java.lang.Object C6.f1(int,java.lang.Object,java.lang.String,java.lang.Object) C7 public java.lang.Integer C7.f1(int,java.lang.Object,java.lang.String,java.lang.Integer) -public int C7.f1(int,java.lang.Object,java.lang.String,int) +public java.lang.Integer C7.f1(int,java.lang.Object,java.lang.String,java.lang.Integer) public java.lang.Object C7.f1(int,java.lang.Object,java.lang.String,java.lang.Object) public java.lang.Object C7.f1(int,java.lang.Object,java.lang.String,java.lang.Object) diff --git a/tests/disabled/reflect/run/t6344.scala b/tests/run/t6344.scala similarity index 98% rename from tests/disabled/reflect/run/t6344.scala rename to tests/run/t6344.scala index 6f82e4ba51c9..3742a9549f6a 100644 --- a/tests/disabled/reflect/run/t6344.scala +++ b/tests/run/t6344.scala @@ -1,3 +1,6 @@ +// scalajs: --skip +// (JVM-only, generic signatures) + import scala.reflect.{ClassTag, classTag} import java.lang.Integer