Skip to content

Instantly share code, notes, and snippets.

@xuwei-k
xuwei-k / gist:eda3bcb11e919734069642486b91e4d0
Created October 21, 2022 08:42
Binary compatibility org.slf4j slf4j-api 1.7.36 2.0.3
* class org.slf4j.event.EventRecodingLogger does not have a correspondent in current version
filter with: ProblemFilters.exclude[MissingClassProblem]("org.slf4j.event.EventRecodingLogger")
* abstract method getMarker()org.slf4j.Marker in interface org.slf4j.event.LoggingEvent does not have a correspondent in current version
filter with: ProblemFilters.exclude[DirectMissingMethodProblem]("org.slf4j.event.LoggingEvent.getMarker")
* abstract method getArguments()java.util.List in interface org.slf4j.event.LoggingEvent is present only in current version
filter with: ProblemFilters.exclude[ReversedMissingMethodProblem]("org.slf4j.event.LoggingEvent.getArguments")
* abstract method getMarkers()java.util.List in interface org.slf4j.event.LoggingEvent is present only in current version
filter with: ProblemFilters.exclude[ReversedMissingMethodProblem]("org.slf4j.event.LoggingEvent.getMarkers")
* abstract method getKeyValuePairs()java.util.List in interface org.slf4j.event.LoggingEvent is present only
$ scala --version
Scala code runner version 2.13.10 -- Copyright 2002-2022, LAMP/EPFL and Lightbend, Inc.
$ scala -Wperformance -Xprint:jvm -e "def foo: Int = { var a = 10; @annotation.tailrec def loop(): Int = if (a == 0) 3 else { a -= 1 ; loop() } ; loop() }"
/var/folders/nz/vb2z3s8j7719gg71zgz9gj_40000gn/T/scalacmd2181293633408592115.scala:1: warning: Modification of variable a within a closure causes it to be boxed.
def foo: Int = { var a = 10; @annotation.tailrec def loop(): Int = if (a == 0) 3 else { a -= 1 ; loop() } ; loop() }
^
[[syntax trees at end of jvm]] // scalacmd2181293633408592115.scala
package <empty> {
object Main extends Object {
def main(args: Array[String]): Unit = {
$ scala -version
Scala code runner version 2.13.9 -- Copyright 2002-2022, LAMP/EPFL and Lightbend, Inc.
$ java -version
openjdk version "17.0.3" 2022-04-19 LTS
OpenJDK Runtime Environment Zulu17.34+19-CA (build 17.0.3+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.34+19-CA (build 17.0.3+7-LTS, mixed mode, sharing)
$ scala -release:help
Usage: -release:<release> where <release> choices are 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 (default: 17).
$ jenv shell 11
package fix
import scalafix.Diagnostic
import scalafix.Patch
import scalafix.v1.SyntacticDocument
import scalafix.v1.SyntacticRule
import scala.meta.Term
import scalafix.lint.LintSeverity
class WrongStringInterpolation extends SyntacticRule("WrongStringInterpolation") {
import scalafix.Diagnostic
import scalafix.Patch
import scalafix.lint.LintSeverity
import scalafix.v1.SyntacticDocument
import scalafix.v1.SyntacticRule
import scala.meta.Defn
import scala.meta.Tree
import scala.meta.inputs.Input
import scala.meta.inputs.Position
package fix
import scalafix.Patch
import scalafix.v1.SyntacticDocument
import scalafix.v1.SyntacticRule
import scala.meta.Term
class MapSequenceTraverse extends SyntacticRule("MapSequenceTraverse") {
override def fix(implicit doc: SyntacticDocument): Patch = {
doc.tree.collect {
package fix
import scalafix.Patch
import scalafix.v1.SyntacticDocument
import scalafix.v1.SyntacticRule
import scala.meta.Position
import scala.meta.Term
import scalafix.lint.Diagnostic
import scalafix.lint.LintSeverity
-- Warning: compiler/src/dotty/tools/dotc/typer/Applications.scala:1087:6 ------
[wartremover:Return] return is disabledctorTest 5s
-- Warning: compiler/src/dotty/tools/dotc/typer/Applications.scala:1241:43 -----
[wartremover:Return] return is disabled
-- Warning: compiler/src/dotty/tools/dotc/typer/Applications.scala:1784:34 -----
[wartremover:Return] return is disabled
-- Warning: compiler/src/dotty/tools/dotc/typer/Applications.scala:1786:12 -----
[wartremover:Return] return is disabled
-- Warning: compiler/src/dotty/tools/dotc/typer/Checking.scala:429:6 -----------
[wartremover:Return] return is disabled
sealed abstract class Y
class Y1 extends Y
class Y2 extends Y
sealed abstract class X[B](val value: Int)
case object X1 extends X[Y1](1)
case object X2 extends X[Y2](2)
Welcome to Scala 3.1.1 (1.8.0_322, Java OpenJDK 64-Bit Server VM).
Type in expressions for evaluation. Or try :help.
scala> import scala.quoted.*
scala> def a[A](f : [x <: Quotes] => (x: x) => x.reflect.Tree => A): A = ???
def a[A](f: [x <: quoted.Quotes] => (x: x) => x.reflect.Tree => A): A
scala> a([x <: Quotes] => (x: x) => (tree: x.reflect.Tree) => tree.symbol)
error when pickling type x.type