From 8ba248924c9b5b6d5e2b3c8a4f6fe055e09317be Mon Sep 17 00:00:00 2001 From: Seth Tisue Date: Sun, 9 Oct 2022 20:55:35 -0300 Subject: [PATCH] support Scala 2.13.10 (and 2.13.11 nightlies) --- .github/workflows/validate.yml | 1 + build.sbt | 2 +- src/test/resources/patches/2.13.10.patch | 102 ++++----- src/test/resources/patches/2.13.11.patch | 261 +++++++++++++++++++++++ 4 files changed, 299 insertions(+), 67 deletions(-) create mode 100644 src/test/resources/patches/2.13.11.patch diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index b47bf34..72718e3 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -37,6 +37,7 @@ jobs: - 2.13.7 - 2.13.8 - 2.13.9 + - 2.13.10 java: [8, 11, 17] steps: diff --git a/build.sbt b/build.sbt index 41c6030..cf6f3ea 100644 --- a/build.sbt +++ b/build.sbt @@ -47,7 +47,7 @@ lazy val defaults = Seq( scalaVersion := crossScalaVersions.value.last, crossScalaVersions := { val supportedScala212Versions = (5 to 17).map(p => s"2.12.$p") - val supportedScala213Versions = (0 to 9).map(p => s"2.13.$p") + val supportedScala213Versions = (0 to 10).map(p => s"2.13.$p") supportedScala212Versions ++ supportedScala213Versions }, scalaMajorVersion := CrossVersion.partialVersion(scalaVersion.value).get._2.toInt, diff --git a/src/test/resources/patches/2.13.10.patch b/src/test/resources/patches/2.13.10.patch index bad0b7c..df6c303 100644 --- a/src/test/resources/patches/2.13.10.patch +++ b/src/test/resources/patches/2.13.10.patch @@ -16,11 +16,9 @@ static public akka.actor.Identify apply (Object messageId) { throw new RuntimeException(); } static public scala.Option unapply (akka.actor.Identify x$0) { throw new RuntimeException(); } public Object messageId () { throw new RuntimeException(); } -@@ -11,8 +11,8 @@ - public java.lang.String productPrefix () { throw new RuntimeException(); } - public int productArity () { throw new RuntimeException(); } +@@ -13,6 +13,7 @@ public Object productElement (int x$1) { throw new RuntimeException(); } -- public scala.collection.Iterator productIterator () { throw new RuntimeException(); } + public scala.collection.Iterator productIterator () { throw new RuntimeException(); } public boolean canEqual (Object x$1) { throw new RuntimeException(); } + public java.lang.String productElementName (int x$1) { throw new RuntimeException(); } public int hashCode () { throw new RuntimeException(); } @@ -53,6 +51,33 @@ public Props () { throw new RuntimeException(); } public abstract akka.actor.typed.Props next () ; } +--- target/expected_output/basic/akka/persistence/testkit/EventStorage.java ++++ target/expected_output/basic/akka/persistence/testkit/EventStorage.java +@@ -5,7 +5,9 @@ + * Static reference to the singleton instance of this Scala object. + */ + public static final JournalPolicies$ MODULE$ = null; ++ public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll$ PassAll () { throw new RuntimeException(); } + public JournalPolicies$ () { throw new RuntimeException(); } + } +- public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll$ DefaultPolicy () ; ++ public void akka$persistence$testkit$EventStorage$_setter_$DefaultPolicy_$eq (akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll x$1) ; ++ public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll DefaultPolicy () ; + } +--- target/expected_output/basic/akka/persistence/testkit/ProcessingPolicy.java ++++ target/expected_output/basic/akka/persistence/testkit/ProcessingPolicy.java +@@ -10,8 +10,10 @@ + static public int hashCode () { throw new RuntimeException(); } + static public java.lang.String toString () { throw new RuntimeException(); } + static public abstract boolean equals (Object that) ; ++ static public java.lang.String productElementName (int n) { throw new RuntimeException(); } ++ static public scala.collection.Iterator productElementNames () { throw new RuntimeException(); } + } +- public class PassAll$ implements akka.persistence.testkit.ProcessingPolicy, scala.Product, scala.Serializable { ++ public class PassAll$ implements akka.persistence.testkit.ProcessingPolicy, scala.Product, java.io.Serializable { + /** + * Static reference to the singleton instance of this Scala object. + */ --- target/expected_output/basic/akka/rk/buh/is/it/A.java +++ target/expected_output/basic/akka/rk/buh/is/it/A.java @@ -35,7 +35,7 @@ @@ -140,15 +165,7 @@ /** * Static reference to the singleton instance of this Scala object. */ -@@ -14,7 +12,6 @@ - public java.lang.String productPrefix () { throw new RuntimeException(); } - public int productArity () { throw new RuntimeException(); } - public Object productElement (int x$1) { throw new RuntimeException(); } -- public scala.collection.Iterator productIterator () { throw new RuntimeException(); } - public boolean canEqual (Object x$1) { throw new RuntimeException(); } - public int hashCode () { throw new RuntimeException(); } - public java.lang.String toString () { throw new RuntimeException(); } -@@ -18,9 +15,8 @@ +@@ -18,9 +16,8 @@ public boolean canEqual (Object x$1) { throw new RuntimeException(); } public int hashCode () { throw new RuntimeException(); } public java.lang.String toString () { throw new RuntimeException(); } @@ -159,11 +176,9 @@ public java.lang.String x () { throw new RuntimeException(); } // not preceding public B (java.lang.String x) { throw new RuntimeException(); } -@@ -30,14 +26,13 @@ - public java.lang.String productPrefix () { throw new RuntimeException(); } - public int productArity () { throw new RuntimeException(); } +@@ -32,12 +29,12 @@ public Object productElement (int x$1) { throw new RuntimeException(); } -- public scala.collection.Iterator productIterator () { throw new RuntimeException(); } + public scala.collection.Iterator productIterator () { throw new RuntimeException(); } public boolean canEqual (Object x$1) { throw new RuntimeException(); } + public java.lang.String productElementName (int x$1) { throw new RuntimeException(); } public int hashCode () { throw new RuntimeException(); } @@ -187,11 +202,9 @@ static public akka.rk.buh.is.it.CompressionProtocol.Events.HeavyHitterDetected apply (Object key, int id, long count) { throw new RuntimeException(); } static public scala.Option> unapply (akka.rk.buh.is.it.CompressionProtocol.Events.HeavyHitterDetected x$0) { throw new RuntimeException(); } public Object key () { throw new RuntimeException(); } -@@ -22,13 +22,13 @@ - public java.lang.String productPrefix () { throw new RuntimeException(); } - public int productArity () { throw new RuntimeException(); } +@@ -24,11 +24,12 @@ public Object productElement (int x$1) { throw new RuntimeException(); } -- public scala.collection.Iterator productIterator () { throw new RuntimeException(); } + public scala.collection.Iterator productIterator () { throw new RuntimeException(); } public boolean canEqual (Object x$1) { throw new RuntimeException(); } + public java.lang.String productElementName (int x$1) { throw new RuntimeException(); } public int hashCode () { throw new RuntimeException(); } @@ -224,11 +237,9 @@ // not preceding static public akka.rk.buh.is.it.EWMA apply (double value, double alpha) { throw new RuntimeException(); } static public scala.Option> unapply (akka.rk.buh.is.it.EWMA x$0) { throw new RuntimeException(); } -@@ -42,8 +42,8 @@ - public java.lang.String productPrefix () { throw new RuntimeException(); } - public int productArity () { throw new RuntimeException(); } +@@ -44,6 +44,7 @@ public Object productElement (int x$1) { throw new RuntimeException(); } -- public scala.collection.Iterator productIterator () { throw new RuntimeException(); } + public scala.collection.Iterator productIterator () { throw new RuntimeException(); } public boolean canEqual (Object x$1) { throw new RuntimeException(); } + public java.lang.String productElementName (int x$1) { throw new RuntimeException(); } public int hashCode () { throw new RuntimeException(); } @@ -248,44 +259,3 @@ -public interface X extends scala.Serializable, akka.rk.buh.is.it.Y { +public interface X extends java.io.Serializable, akka.rk.buh.is.it.Y { } ---- target/expected_output/basic/akka/persistence/testkit/EventStorage.java 2020-03-23 16:20:58.647999228 +0100 -+++ target/expected_output/basic/akka/persistence/testkit/EventStorage.java 2020-03-23 16:20:58.647999228 +0100 -@@ -5,7 +5,9 @@ - * Static reference to the singleton instance of this Scala object. - */ - public static final JournalPolicies$ MODULE$ = null; -+ public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll$ PassAll () { throw new RuntimeException(); } - public JournalPolicies$ () { throw new RuntimeException(); } - } -- public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll$ DefaultPolicy () ; -+ public void akka$persistence$testkit$EventStorage$_setter_$DefaultPolicy_$eq (akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll x$1) ; -+ public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll DefaultPolicy () ; - } ---- target/expected_output/basic/akka/persistence/testkit/ProcessingPolicy.java -+++ target/expected_output/basic/akka/persistence/testkit/ProcessingPolicy.java -@@ -5,13 +5,15 @@ - static public java.lang.String productPrefix () { throw new RuntimeException(); } - static public int productArity () { throw new RuntimeException(); } - static public Object productElement (int x$1) { throw new RuntimeException(); } -- static public scala.collection.Iterator productIterator () { throw new RuntimeException(); } - static public boolean canEqual (Object x$1) { throw new RuntimeException(); } - static public int hashCode () { throw new RuntimeException(); } - static public java.lang.String toString () { throw new RuntimeException(); } - static public abstract boolean equals (Object that) ; -+ static public scala.collection.Iterator productIterator () { throw new RuntimeException(); } -+ static public java.lang.String productElementName (int n) { throw new RuntimeException(); } -+ static public scala.collection.Iterator productElementNames () { throw new RuntimeException(); } - } -- public class PassAll$ implements akka.persistence.testkit.ProcessingPolicy, scala.Product, scala.Serializable { -+ public class PassAll$ implements akka.persistence.testkit.ProcessingPolicy, scala.Product, java.io.Serializable { - /** - * Static reference to the singleton instance of this Scala object. - */ -@@ -20,7 +22,6 @@ - public java.lang.String productPrefix () { throw new RuntimeException(); } - public int productArity () { throw new RuntimeException(); } - public Object productElement (int x$1) { throw new RuntimeException(); } -- public scala.collection.Iterator productIterator () { throw new RuntimeException(); } - public boolean canEqual (Object x$1) { throw new RuntimeException(); } - public int hashCode () { throw new RuntimeException(); } - public java.lang.String toString () { throw new RuntimeException(); } diff --git a/src/test/resources/patches/2.13.11.patch b/src/test/resources/patches/2.13.11.patch new file mode 100644 index 0000000..df6c303 --- /dev/null +++ b/src/test/resources/patches/2.13.11.patch @@ -0,0 +1,261 @@ +--- target/expected_output/basic/akka/actor/Identify$.java ++++ target/expected_output/basic/akka/actor/Identify$.java +@@ -1,5 +1,5 @@ + package akka.actor; +-public class Identify$ extends scala.runtime.AbstractFunction1 implements scala.Serializable { ++public class Identify$ extends scala.runtime.AbstractFunction1 implements java.io.Serializable { + /** + * Static reference to the singleton instance of this Scala object. + */ +--- target/expected_output/basic/akka/actor/Identify.java ++++ target/expected_output/basic/akka/actor/Identify.java +@@ -1,5 +1,5 @@ + package akka.actor; +-public final class Identify implements scala.Product, scala.Serializable { ++public final class Identify implements scala.Product, java.io.Serializable { + static public akka.actor.Identify apply (Object messageId) { throw new RuntimeException(); } + static public scala.Option unapply (akka.actor.Identify x$0) { throw new RuntimeException(); } + public Object messageId () { throw new RuntimeException(); } +@@ -13,6 +13,7 @@ + public Object productElement (int x$1) { throw new RuntimeException(); } + public scala.collection.Iterator productIterator () { throw new RuntimeException(); } + public boolean canEqual (Object x$1) { throw new RuntimeException(); } ++ public java.lang.String productElementName (int x$1) { throw new RuntimeException(); } + public int hashCode () { throw new RuntimeException(); } + public java.lang.String toString () { throw new RuntimeException(); } + public boolean equals (Object x$1) { throw new RuntimeException(); } +--- target/expected_output/basic/akka/actor/dsl/Inbox.java ++++ target/expected_output/basic/akka/actor/dsl/Inbox.java +@@ -2,5 +2,6 @@ + public interface Inbox { + public interface InboxExtension { + public int DSLInboxQueueSize () ; ++ public void akka$actor$dsl$Inbox$InboxExtension$_setter_$DSLInboxQueueSize_$eq (int x$1) ; + } + } +--- target/expected_output/basic/akka/actor/typed/DispatcherSelector$.java ++++ target/expected_output/basic/akka/actor/typed/DispatcherSelector$.java +@@ -1,5 +1,5 @@ + package akka.actor.typed; +-public class DispatcherSelector$ implements scala.Serializable { ++public class DispatcherSelector$ implements java.io.Serializable { + /** + * Static reference to the singleton instance of this Scala object. + */ +--- target/expected_output/basic/akka/actor/typed/Props.java ++++ target/expected_output/basic/akka/actor/typed/Props.java +@@ -1,5 +1,5 @@ + package akka.actor.typed; +-public abstract class Props implements scala.Product, scala.Serializable { ++public abstract class Props implements scala.Product, java.io.Serializable { + public Props () { throw new RuntimeException(); } + public abstract akka.actor.typed.Props next () ; + } +--- target/expected_output/basic/akka/persistence/testkit/EventStorage.java ++++ target/expected_output/basic/akka/persistence/testkit/EventStorage.java +@@ -5,7 +5,9 @@ + * Static reference to the singleton instance of this Scala object. + */ + public static final JournalPolicies$ MODULE$ = null; ++ public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll$ PassAll () { throw new RuntimeException(); } + public JournalPolicies$ () { throw new RuntimeException(); } + } +- public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll$ DefaultPolicy () ; ++ public void akka$persistence$testkit$EventStorage$_setter_$DefaultPolicy_$eq (akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll x$1) ; ++ public akka.persistence.testkit.ProcessingPolicy.DefaultPolicies.PassAll DefaultPolicy () ; + } +--- target/expected_output/basic/akka/persistence/testkit/ProcessingPolicy.java ++++ target/expected_output/basic/akka/persistence/testkit/ProcessingPolicy.java +@@ -10,8 +10,10 @@ + static public int hashCode () { throw new RuntimeException(); } + static public java.lang.String toString () { throw new RuntimeException(); } + static public abstract boolean equals (Object that) ; ++ static public java.lang.String productElementName (int n) { throw new RuntimeException(); } ++ static public scala.collection.Iterator productElementNames () { throw new RuntimeException(); } + } +- public class PassAll$ implements akka.persistence.testkit.ProcessingPolicy, scala.Product, scala.Serializable { ++ public class PassAll$ implements akka.persistence.testkit.ProcessingPolicy, scala.Product, java.io.Serializable { + /** + * Static reference to the singleton instance of this Scala object. + */ +--- target/expected_output/basic/akka/rk/buh/is/it/A.java ++++ target/expected_output/basic/akka/rk/buh/is/it/A.java +@@ -35,7 +35,7 @@ + /** + * object A.D + */ +- public class D$ implements scala.Serializable { ++ public class D$ implements java.io.Serializable { + /** + * And a nested object. + */ +@@ -48,13 +48,13 @@ + public class NonStatic { + public NonStatic () { throw new RuntimeException(); } + } ++ public akka.rk.buh.is.it.A.D$.E$ E () { throw new RuntimeException(); } + public D$ () { throw new RuntimeException(); } + /** + * def A.D.math + * @return (undocumented) + */ + public long math () { throw new RuntimeException(); } +- public akka.rk.buh.is.it.A.D$.E$ E () { throw new RuntimeException(); } + } + /** + * class A.B +@@ -76,7 +76,7 @@ + * def b(args: java.lang.String*): Unit + * @param args (undocumented) + */ +- public void b (scala.collection.Seq args) { throw new RuntimeException(); } ++ public void b (scala.collection.immutable.Seq args) { throw new RuntimeException(); } + public java.lang.String d (java.lang.String a, akka.rk.buh.is.it.X b) { throw new RuntimeException(); } + } + public class C implements akka.rk.buh.is.it.X { +@@ -103,8 +103,8 @@ + * class A.C + */ + static public class C1 { +- public C1 () { throw new RuntimeException(); } + public akka.rk.buh.is.it.A.C1$C1$ C1 () { throw new RuntimeException(); } ++ public C1 () { throw new RuntimeException(); } + } + /** + * object C1 +@@ -142,6 +142,11 @@ + static public java.lang.String stattic () { throw new RuntimeException(); } + static public java.lang.Object x () { throw new RuntimeException(); } + /** ++ * Accessor for nested Scala object ++ * @return (undocumented) ++ */ ++ public akka.rk.buh.is.it.A.D$ D () { throw new RuntimeException(); } ++ /** + * varargs + * @param s (undocumented) + * @return (undocumented) +@@ -207,16 +212,11 @@ + * @param s (undocumented) + * @return (undocumented) + */ +- public int hello (scala.collection.Seq s) { throw new RuntimeException(); } ++ public int hello (scala.collection.immutable.Seq s) { throw new RuntimeException(); } + /** + * throws + * @return (undocumented) + */ + public int testthrows () throws java.lang.IllegalArgumentException, java.lang.NullPointerException { throw new RuntimeException(); } + public scala.runtime.Null$ getNull () { throw new RuntimeException(); } +- /** +- * Accessor for nested Scala object +- * @return (undocumented) +- */ +- public akka.rk.buh.is.it.A.D$ D () { throw new RuntimeException(); } + } +--- target/expected_output/basic/akka/rk/buh/is/it/Blarb.java ++++ target/expected_output/basic/akka/rk/buh/is/it/Blarb.java +@@ -4,8 +3,7 @@ + * I am an object. I have no class. + */ + public class Blarb { +- // no position +- static public class A$ implements akka.rk.buh.is.it.Blarb.Fuz, scala.Product, scala.Serializable { ++ static public class A$ implements akka.rk.buh.is.it.Blarb.Fuz, scala.Product, java.io.Serializable { + /** + * Static reference to the singleton instance of this Scala object. + */ +@@ -18,9 +16,8 @@ + public boolean canEqual (Object x$1) { throw new RuntimeException(); } + public int hashCode () { throw new RuntimeException(); } + public java.lang.String toString () { throw new RuntimeException(); } +- private java.lang.Object readResolve () { throw new RuntimeException(); } + } +- static public class B implements akka.rk.buh.is.it.Blarb.Fuz, scala.Product, scala.Serializable { ++ static public class B implements akka.rk.buh.is.it.Blarb.Fuz, scala.Product, java.io.Serializable { + public java.lang.String x () { throw new RuntimeException(); } + // not preceding + public B (java.lang.String x) { throw new RuntimeException(); } +@@ -32,12 +29,12 @@ + public Object productElement (int x$1) { throw new RuntimeException(); } + public scala.collection.Iterator productIterator () { throw new RuntimeException(); } + public boolean canEqual (Object x$1) { throw new RuntimeException(); } ++ public java.lang.String productElementName (int x$1) { throw new RuntimeException(); } + public int hashCode () { throw new RuntimeException(); } + public java.lang.String toString () { throw new RuntimeException(); } + public boolean equals (Object x$1) { throw new RuntimeException(); } + } +- // no position +- static public class B$ extends scala.runtime.AbstractFunction1 implements scala.Serializable { ++ static public class B$ extends scala.runtime.AbstractFunction1 implements java.io.Serializable { + /** + * Static reference to the singleton instance of this Scala object. + */ +--- target/expected_output/basic/akka/rk/buh/is/it/CompressionProtocol.java ++++ target/expected_output/basic/akka/rk/buh/is/it/CompressionProtocol.java +@@ -5,7 +5,7 @@ + * Static reference to the singleton instance of this Scala object. + */ + public static final Events$ MODULE$ = null; +- public final class HeavyHitterDetected implements akka.rk.buh.is.it.CompressionProtocol.Events.Event, scala.Product, scala.Serializable { ++ public final class HeavyHitterDetected implements akka.rk.buh.is.it.CompressionProtocol.Events.Event, scala.Product, java.io.Serializable { + static public akka.rk.buh.is.it.CompressionProtocol.Events.HeavyHitterDetected apply (Object key, int id, long count) { throw new RuntimeException(); } + static public scala.Option> unapply (akka.rk.buh.is.it.CompressionProtocol.Events.HeavyHitterDetected x$0) { throw new RuntimeException(); } + public Object key () { throw new RuntimeException(); } +@@ -24,11 +24,12 @@ + public Object productElement (int x$1) { throw new RuntimeException(); } + public scala.collection.Iterator productIterator () { throw new RuntimeException(); } + public boolean canEqual (Object x$1) { throw new RuntimeException(); } ++ public java.lang.String productElementName (int x$1) { throw new RuntimeException(); } + public int hashCode () { throw new RuntimeException(); } + public java.lang.String toString () { throw new RuntimeException(); } + public boolean equals (Object x$1) { throw new RuntimeException(); } + } +- public class HeavyHitterDetected$ extends scala.runtime.AbstractFunction3 implements scala.Serializable { ++ public class HeavyHitterDetected$ extends scala.runtime.AbstractFunction3 implements java.io.Serializable { + /** + * Static reference to the singleton instance of this Scala object. + */ +--- target/expected_output/basic/akka/rk/buh/is/it/EWMA$.java ++++ target/expected_output/basic/akka/rk/buh/is/it/EWMA$.java +@@ -1,6 +1,5 @@ + package akka.rk.buh.is.it; +-// no position +-public class EWMA$ implements scala.Serializable { ++public class EWMA$ implements java.io.Serializable { + /** + * Static reference to the singleton instance of this Scala object. + */ +--- target/expected_output/basic/akka/rk/buh/is/it/EWMA.java ++++ target/expected_output/basic/akka/rk/buh/is/it/EWMA.java +@@ -18,7 +18,7 @@ + * This value is always used as the previous EWMA to calculate the new EWMA. + *

+ */ +-public final class EWMA implements scala.Product, scala.Serializable { ++public final class EWMA implements scala.Product, java.io.Serializable { + // not preceding + static public akka.rk.buh.is.it.EWMA apply (double value, double alpha) { throw new RuntimeException(); } + static public scala.Option> unapply (akka.rk.buh.is.it.EWMA x$0) { throw new RuntimeException(); } +@@ -44,6 +44,7 @@ + public Object productElement (int x$1) { throw new RuntimeException(); } + public scala.collection.Iterator productIterator () { throw new RuntimeException(); } + public boolean canEqual (Object x$1) { throw new RuntimeException(); } ++ public java.lang.String productElementName (int x$1) { throw new RuntimeException(); } + public int hashCode () { throw new RuntimeException(); } + public java.lang.String toString () { throw new RuntimeException(); } + public boolean equals (Object x$1) { throw new RuntimeException(); } +--- target/expected_output/basic/akka/rk/buh/is/it/Status$Status.java ++++ target/expected_output/basic/akka/rk/buh/is/it/Status$Status.java +@@ -1,3 +1,3 @@ + package akka.rk.buh.is.it; +-public interface Status$Status extends scala.Serializable { ++public interface Status$Status extends java.io.Serializable { + } +--- target/expected_output/basic/akka/rk/buh/is/it/X.java ++++ target/expected_output/basic/akka/rk/buh/is/it/X.java +@@ -1,3 +1,3 @@ + package akka.rk.buh.is.it; +-public interface X extends scala.Serializable, akka.rk.buh.is.it.Y { ++public interface X extends java.io.Serializable, akka.rk.buh.is.it.Y { + }