Provide Scala-version-agnostic way of reading macro settings#572
Provide Scala-version-agnostic way of reading macro settings#572MateuszKubuszok merged 7 commits intomasterfrom
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #572 +/- ##
==========================================
- Coverage 88.05% 86.73% -1.33%
==========================================
Files 153 154 +1
Lines 5911 5986 +75
Branches 500 540 +40
==========================================
- Hits 5205 5192 -13
- Misses 706 794 +88 ☔ View full report in Codecov by Sentry. |
8b877df to
4089e36
Compare
4089e36 to
939c063
Compare
|
( Sooo: //> using plugin org.wartremover:::wartremover:3.1.7
// Scala 2:
//> using scala 2.13.14
//> using options -Xfatal-warnings -P:wartremover:traverser:org.wartremover.warts.Unsafe -Wmacros:both -Xmacro-settings:chimney.SuppressWarnings=none -Vmacro
//> using dep io.scalaland::chimney:1.3.0-6-g42ce88f-SNAPSHOT
case class Foo(a: Option[String], b: Option[Int])
case class Bar(a: String, b: Int, c: Long)
import io.scalaland.chimney.dsl._
println(
scala.compiletime.codeOf(
Foo(Some("test"), Some(1024))
.intoPartial[Bar]
.withFieldConst(_.c, 1024L)
.transform
)
)always pass (even though //> using plugin org.wartremover:::wartremover:3.1.7
// Scala 3:
//> using scala 3.3.3
//> using options -Xfatal-warnings -P:wartremover:traverser:org.wartremover.warts.Unsafe -Xmacro-settings:chimney.SuppressWarnings=org.wartremover.warts.Var
//> using dep io.scalaland::chimney:1.3.0-6-g42ce88f-SNAPSHOT
case class Foo(a: Option[String], b: Option[Int])
case class Bar(a: String, b: Int, c: Long)
import io.scalaland.chimney.dsl._
println(
Foo(Some("test"), Some(1024))
.intoPartial[Bar]
.withFieldConst(_.c, 1024L)
.transform
)
)always fails (an in the source code annotations are always absent :/) |
…arnings application to Gateways
|
After testing with sbt... Scala 2 works as expected... while Scala 3 always pass, whether annotations are applied or not :/ // build.sbt
libraryDependencies += "io.scalaland" %% "chimney" % "1.3.0-7-g939c063-SNAPSHOT"
wartremoverErrors ++= Warts.all
//scalaVersion := "3.3.3"
scalaVersion := "2.13.14"
scalacOptions += "-Wmacros:both" // Scala 2-only
scalacOptions += "-Xmacro-settings:chimney.SuppressWarnings=none"
scalacOptions += "-Xmacro-settings:chimney.transformer.MacrosLogging=true"// project/plugins.sbt
addSbtPlugin("org.wartremover" % "sbt-wartremover" % "3.1.7")// src/main/scala/test/example.scala
package test
import io.scalaland.chimney.dsl._
final case class Foo(a: Option[String], b: Option[Int])
final case class Bar(a: String, b: Int, c: Long)
object Example {
def main(args: Array[String]): Unit =
println(
Foo(Some("test"), Some(1024))
.intoPartial[Bar]
.withFieldConst(_.c, 1024L)
//.enableMacrosLogging
.transform
)
} |
|
Sooo, for now let's continue, it seems that behavior is unchanged (verified with newer commit and Scala 3), if we notice some changes in wartemover and Scala 3 we'll return to the this. |
918ff35 to
53e9cda
Compare
-Xmacro-settingsTransformer(Boolean) flagchimney.transformer.InheritedAccessors=booleanchimney.transformer.MethodAccessors=booleanchimney.transformer.DefaultValues=booleanchimney.transformer.BeanSetters=booleanchimney.transformer.BeanSettersIgnoreUnmatched=booleanchimney.transformer.NonUnitBeanSetters=booleanchimney.transformer.BeanGetters=booleanchimney.transformer.OptionDefaultsToNone=booleanchimney.transformer.PartialUnwrapsOption=booleanchimney.transformer.NonAnyValWrappers=booleanchimney.transformer.ImplicitConflictResolution=Total/Partial/falsechimney.transformer.MacrosLogging=booleanPatcher(Boolean) flagchimney.patcher.IgnoreRedundantPatcherFields=booleanchimney.patcher.IgnoreNoneInPatch=booleanchimney.patcher.MacrosLogging=boolean@SuppressWarnings(Array(...))and@NoWarn(...)chimney.SuppressWarnings=false/listchimney.NoWarn=false/true/msg