Skip to content

Commit 820016f

Browse files
committed
test scala#247
1 parent 9ae6e96 commit 820016f

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

.github/workflows/release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,6 @@ jobs:
1919
PGP_SECRET: ${{secrets.PGP_SECRET}}
2020
SONATYPE_PASSWORD: ${{secrets.SONATYPE_PASSWORD}}
2121
SONATYPE_USERNAME: ${{secrets.SONATYPE_USERNAME}}
22+
CI_RELEASE: ';+publish ;+check247'
23+
CI_SNAPSHOT_RELEASE: ';+publish ;check247'
24+
CI_SONATYPE_RELEASE: 'version' # don't actual release

build.sbt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,49 @@ lazy val scalaJava8Compat = (project in file("."))
164164
|import scala.compat.java8.FutureConverters._
165165
|""".stripMargin
166166
)
167+
.settings(
168+
publishTo := Some(Resolver.file("sonatype-local-bundle", sonatypeBundleDirectory.value)),
169+
TaskKey[Unit]("check247") := {
170+
import scala.sys.process._
171+
val v = version.value
172+
val base = moduleName.value + "_" + scalaBinaryVersion.value
173+
val name = s"$base-$v.jar"
174+
val wd = sonatypeBundleDirectory.value /
175+
organization.value.replace('.', '/') /
176+
base / v
177+
Process(s"unzip -o $name", wd).!.ensuring(_ == 0)
178+
val javap = Process(s"javap -c -v scala.compat.java8.Priority1FunctionConverters", wd).!!
179+
println("\n++++javap++++")
180+
println(javap)
181+
println("----javap----\n")
182+
// // 2.11
183+
// " public abstract <A0 extends java.lang.Object, R extends java.lang.Object> scala.Function1<java.lang.Object, R> enrichAsJavaIntFunction(scala.Function1<A0, R>, scala.Predef$$eq$colon$eq<A0, java.lang.Object>);"
184+
// // 2.13
185+
// " public default <A0 extends java.lang.Object, R extends java.lang.Object> scala.Function1<java.lang.Object, R> enrichAsJavaIntFunction(scala.Function1<A0, R>, scala.$eq$colon$eq<A0, java.lang.Object>);"
186+
// // 2.13 in release 1.0.1 on maven central
187+
// " public default <R extends java.lang.Object> scala.Function1<java.lang.Object, R> enrichAsJavaIntFunction(scala.Function1<java.lang.Object, R>);"
188+
val sig = javap
189+
.linesIterator
190+
.find(_.contains("> enrichAsJavaIntFunction(scala.Function1<"))
191+
sig.foreach(println)
192+
sig.get.ensuring(_.contains("$eq$colon$eq"))
193+
},
194+
)
195+
196+
lazy val tmp = project
197+
.settings(
198+
scalaVersion := "2.13.6",
199+
// libraryDependencies := Seq("org.scala-lang.modules" %% "scala-java8-compat" % "0.9.1"),
200+
libraryDependencies := Seq("org.scala-lang.modules" %% "scala-java8-compat" % "1.0.0"),
201+
TaskKey[Unit]("runMe") := {
202+
import scala.sys.process._
203+
val myCp = (Compile / products).value
204+
val compatCp = (scalaJava8Compat / Compile / products).value
205+
val scalaLib = scalaInstance.value.libraryJars
206+
val cp = (myCp ++ compatCp ++ scalaLib).mkString(":")
207+
val cmd = s"java -cp $cp Main"
208+
println(cmd)
209+
val out = cmd.!!
210+
println(out)
211+
},
212+
)

tmp/src/main/scala/Main.scala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import scala.compat.java8.FunctionConverters._
2+
import java.util.function.IntFunction
3+
4+
object Main {
5+
def invoke(jfun: IntFunction[String]): String = jfun(2)
6+
def main(args: Array[String]): Unit = {
7+
val fun = (i: Int) => s"ret: $i"
8+
val ret = invoke(fun.asJava)
9+
println(ret)
10+
}
11+
}

0 commit comments

Comments
 (0)