Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
T<java.lang.Object>
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 <T> java.lang.Object Arr.arr4(java.lang.Object[],scala.reflect.ClassTag<T>)
public float[] Arr.arr3(float[][])
public scala.collection.immutable.List<java.lang.Character> Arr.arr2(java.lang.Character[])
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// scalajs: --skip
// (JVM-only, generic signatures)

import scala.language.{ postfixOps }
import scala.reflect.{ClassTag, classTag}
Expand Down Expand Up @@ -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
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
T<java.lang.Object>
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 <T> java.lang.Object Arr.arr4(java.lang.Object[],scala.reflect.Manifest<T>)
public float[] Arr.arr3(float[][])
public scala.collection.immutable.List<java.lang.Character> Arr.arr2(java.lang.Character[])
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// scalajs: --skip
// (JVM-only, generic signatures)

import scala.language.{ postfixOps }
import java.{ lang => jl }
Expand Down Expand Up @@ -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
}
}
3 changes: 3 additions & 0 deletions tests/run/t11321.check
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
t11321.V: scala.Option<t11321.V>
t11321.U: scala.Option<t11321.U>
t11321.W: scala.Option<t11321.W<scala.Function1<java.lang.Object, java.lang.String>>>
29 changes: 29 additions & 0 deletions tests/run/t11321.scala
Original file line number Diff line number Diff line change
@@ -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[_]]
}
2 changes: 2 additions & 0 deletions tests/run/t11321b.check
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
minnow
class java.lang.String
7 changes: 7 additions & 0 deletions tests/run/t11321b/Foo_1.scala
Original file line number Diff line number Diff line change
@@ -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 }
9 changes: 9 additions & 0 deletions tests/run/t11321b/Test_2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package t11321;

public class Test_2 {
public static void main(String ...args) {
scala.Option<X> b = new Foo().b();
System.out.println(b.get().x());
System.out.println(b.get().x().getClass());
}
}
5 changes: 5 additions & 0 deletions tests/run/t11321b/Test_3.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import t11321.*

object Test:
def main(args: Array[String]): Unit =
Test_2.main()
19 changes: 19 additions & 0 deletions tests/run/t1461.scala
Original file line number Diff line number Diff line change
@@ -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 = { }
}
42 changes: 21 additions & 21 deletions tests/disabled/reflect/run/t6344.check → tests/run/t6344.check
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ C0
public int C0.v1(int)
public <A> int C0.v1(int)
public int C0.v3()
public <A> int C0.v3()
public int C0.v3()
public int C0.v4(int,scala.collection.immutable.List)
public <A> int C0.v4(int,scala.collection.immutable.List<Val<A>>)
public <A extends java.lang.String> int C0.v4(int,scala.collection.immutable.List<Val<A>>)
public scala.collection.immutable.List C0.v2()
public <A> scala.collection.immutable.List<Val<A>> C0.v2()

Expand All @@ -14,39 +14,39 @@ public <A> java.lang.Object C1.v1(java.lang.Object)
public java.lang.Object C1.v3()
public <A> java.lang.Object C1.v3()
public java.lang.Object C1.v4(java.lang.Object,scala.collection.immutable.List)
public <A> java.lang.Object C1.v4(java.lang.Object,scala.collection.immutable.List<java.lang.Object>)
public <A extends java.lang.String> java.lang.Object C1.v4(java.lang.Object,scala.collection.immutable.List<ValAny<A>>)
public scala.collection.immutable.List C1.v2()
public <A> scala.collection.immutable.List<java.lang.Object> C1.v2()
public <A> scala.collection.immutable.List<ValAny<A>> C1.v2()

C2
public java.lang.String C2.v1(java.lang.String)
public <A> java.lang.String C2.v1(java.lang.String)
public java.lang.String C2.v3()
public <A> java.lang.String C2.v3()
public java.lang.String C2.v4(java.lang.String,scala.collection.immutable.List)
public <A> java.lang.String C2.v4(java.lang.String,scala.collection.immutable.List<java.lang.String>)
public <A extends java.lang.String> java.lang.String C2.v4(java.lang.String,scala.collection.immutable.List<ValStr<A>>)
public scala.collection.immutable.List C2.v2()
public <A> scala.collection.immutable.List<java.lang.String> C2.v2()
public <A> scala.collection.immutable.List<ValStr<A>> 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<A>)
public java.lang.Object C3.v4(java.lang.Object,scala.collection.immutable.List<ValA<A>>)
public java.lang.Object C3.x()
public A C3.x()
public scala.collection.immutable.List C3.v2()
public scala.collection.immutable.List<A> C3.v2()
public scala.collection.immutable.List<ValA<A>> 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<ValA<java.lang.Object>>)
public java.lang.Integer C4.v4(java.lang.Integer,scala.collection.immutable.List<ValA<java.lang.Object>>)
public scala.collection.immutable.List C4.v2()
public scala.collection.immutable.List<ValA<java.lang.Object>> C4.v2()

Expand All @@ -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<java.lang.String>)
public java.lang.String C4B.v4(java.lang.String,scala.collection.immutable.List<ValA<java.lang.String>>)
public scala.collection.immutable.List C4B.v2()
public scala.collection.immutable.List<java.lang.String> C4B.v2()
public scala.collection.immutable.List<ValA<java.lang.String>> 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> A C5.f1(int,java.lang.Object,java.lang.String,A)
public <A> 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)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// scalajs: --skip
// (JVM-only, generic signatures)

import scala.reflect.{ClassTag, classTag}
import java.lang.Integer

Expand Down
Loading