Skip to content

Commit f1a636f

Browse files
authored
Merge pull request #227 from amumurst/crosscompile-dotty-026
2 parents 5f4b956 + 823b650 commit f1a636f

19 files changed

+1018
-247
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
lib_managed/
33
project/project
44
target/
5+
.bsp
56

67
# Worksheets (Eclipse or IntelliJ)
78
*.sc

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ scala:
66
- 2.11.12
77
- 2.12.13
88
- 2.13.4
9-
9+
- 3.0.0-RC1
1010
env:
1111
- ADOPTOPENJDK=8
1212
- ADOPTOPENJDK=11

build.sbt

+11-1
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,20 @@ scalacOptions ++= Seq(
99
"-Ywarn-unused"
1010
)
1111
incOptions := incOptions.value.withLogRecompileOnMacro(false)
12-
libraryDependencies ++= Dependencies.scalaLogging(scalaVersion.value)
12+
libraryDependencies ++= Dependencies.scalaLogging(scalaVersion.value, isDotty.value)
1313
initialCommands := """|import com.typesafe.scalalogging._
1414
|import org.slf4j.{ Logger => Underlying, _ }""".stripMargin
1515

16+
unmanagedSourceDirectories in Compile ++= {
17+
val sourceDir = (sourceDirectory in Compile).value
18+
val extraFilesOpt = CrossVersion.partialVersion(scalaVersion.value) match {
19+
case Some((2, _)) => Some(sourceDir / "scala-2.x")
20+
case Some((3, _)) => Some(sourceDir / "scala-3.x")
21+
case _ => None
22+
}
23+
extraFilesOpt.toSeq
24+
}
25+
1626
// OSGi
1727

1828
import com.typesafe.sbt.osgi.SbtOsgi

project/Dependencies.scala

+16-14
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,29 @@ import sbt._
22

33
object Version {
44
val logback = "1.2.3"
5-
val mockito = "1.16.23"
6-
val scalaTest = "3.2.3"
5+
val mockito = "3.2.4.0"
6+
val scalaTest = "3.2.4"
77
val slf4j = "1.7.30"
88
}
99

1010
object Library {
11-
val logbackClassic = "ch.qos.logback" % "logback-classic" % Version.logback
12-
val mockitoScala = "org.mockito" %% "mockito-scala-scalatest" % Version.mockito
13-
def scalaReflect(scalaVersion: String) = "org.scala-lang" % "scala-reflect" % scalaVersion
14-
val scalaTest = "org.scalatest" %% "scalatest" % Version.scalaTest
15-
val slf4jApi = "org.slf4j" % "slf4j-api" % Version.slf4j
11+
val logbackClassic = "ch.qos.logback" % "logback-classic" % Version.logback
12+
val mockitoScala = "org.scalatestplus" %% "mockito-3-4" % Version.mockito
13+
def scalaReflect(scalaVersion: String) = "org.scala-lang" % "scala-reflect" % scalaVersion
14+
val scalaTest = "org.scalatest" %% "scalatest" % Version.scalaTest
15+
val slf4jApi = "org.slf4j" % "slf4j-api" % Version.slf4j
1616
}
1717

1818
object Dependencies {
1919
import Library._
2020

21-
def scalaLogging(scalaVersion: String) = List(
22-
scalaReflect(scalaVersion),
23-
slf4jApi,
24-
logbackClassic % "test",
25-
mockitoScala % "test",
26-
scalaTest % "test"
27-
)
21+
def scalaLogging(scalaVersion: String, isDotty: Boolean) = {
22+
List(scalaReflect(scalaVersion)).filter(_ => !isDotty) ++
23+
List(
24+
slf4jApi,
25+
logbackClassic % "test",
26+
mockitoScala % "test",
27+
scalaTest % "test"
28+
)
29+
}
2830
}

project/plugins.sbt

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-osgi" % "0.9.6")
33
addSbtPlugin("com.scalapenos" % "sbt-prompt" % "1.0.2")
44
addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.5")
55
addSbtPlugin("com.dwijnand" % "sbt-travisci" % "1.2.0")
6+
addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.5.3")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package com.typesafe.scalalogging
2+
3+
import org.slf4j.Marker
4+
class LoggerImpl {
5+
6+
// Error
7+
8+
def error(message: String): Unit = macro LoggerMacro.errorMessage
9+
10+
def error(message: String, cause: Throwable): Unit = macro LoggerMacro.errorMessageCause
11+
12+
def error(message: String, args: Any*): Unit = macro LoggerMacro.errorMessageArgs
13+
14+
def error(marker: Marker, message: String): Unit = macro LoggerMacro.errorMessageMarker
15+
16+
def error(marker: Marker, message: String, cause: Throwable): Unit = macro LoggerMacro.errorMessageCauseMarker
17+
18+
def error(marker: Marker, message: String, args: Any*): Unit = macro LoggerMacro.errorMessageArgsMarker
19+
20+
def whenErrorEnabled(body: Unit): Unit = macro LoggerMacro.errorCode
21+
22+
// Warn
23+
24+
def warn(message: String): Unit = macro LoggerMacro.warnMessage
25+
26+
def warn(message: String, cause: Throwable): Unit = macro LoggerMacro.warnMessageCause
27+
28+
def warn(message: String, args: Any*): Unit = macro LoggerMacro.warnMessageArgs
29+
30+
def warn(marker: Marker, message: String): Unit = macro LoggerMacro.warnMessageMarker
31+
32+
def warn(marker: Marker, message: String, cause: Throwable): Unit = macro LoggerMacro.warnMessageCauseMarker
33+
34+
def warn(marker: Marker, message: String, args: Any*): Unit = macro LoggerMacro.warnMessageArgsMarker
35+
36+
def whenWarnEnabled(body: Unit): Unit = macro LoggerMacro.warnCode
37+
38+
// Info
39+
40+
def info(message: String): Unit = macro LoggerMacro.infoMessage
41+
42+
def info(message: String, cause: Throwable): Unit = macro LoggerMacro.infoMessageCause
43+
44+
def info(message: String, args: Any*): Unit = macro LoggerMacro.infoMessageArgs
45+
46+
def info(marker: Marker, message: String): Unit = macro LoggerMacro.infoMessageMarker
47+
48+
def info(marker: Marker, message: String, cause: Throwable): Unit = macro LoggerMacro.infoMessageCauseMarker
49+
50+
def info(marker: Marker, message: String, args: Any*): Unit = macro LoggerMacro.infoMessageArgsMarker
51+
52+
def whenInfoEnabled(body: Unit): Unit = macro LoggerMacro.infoCode
53+
54+
// Debug
55+
56+
def debug(message: String): Unit = macro LoggerMacro.debugMessage
57+
58+
def debug(message: String, cause: Throwable): Unit = macro LoggerMacro.debugMessageCause
59+
60+
def debug(message: String, args: Any*): Unit = macro LoggerMacro.debugMessageArgs
61+
62+
def debug(marker: Marker, message: String): Unit = macro LoggerMacro.debugMessageMarker
63+
64+
def debug(marker: Marker, message: String, cause: Throwable): Unit = macro LoggerMacro.debugMessageCauseMarker
65+
66+
def debug(marker: Marker, message: String, args: Any*): Unit = macro LoggerMacro.debugMessageArgsMarker
67+
68+
def whenDebugEnabled(body: Unit): Unit = macro LoggerMacro.debugCode
69+
70+
// Trace
71+
72+
def trace(message: String): Unit = macro LoggerMacro.traceMessage
73+
74+
def trace(message: String, cause: Throwable): Unit = macro LoggerMacro.traceMessageCause
75+
76+
def trace(message: String, args: Any*): Unit = macro LoggerMacro.traceMessageArgs
77+
78+
def trace(marker: Marker, message: String): Unit = macro LoggerMacro.traceMessageMarker
79+
80+
def trace(marker: Marker, message: String, cause: Throwable): Unit = macro LoggerMacro.traceMessageCauseMarker
81+
82+
def trace(marker: Marker, message: String, args: Any*): Unit = macro LoggerMacro.traceMessageArgsMarker
83+
84+
def whenTraceEnabled(body: Unit): Unit = macro LoggerMacro.traceCode
85+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package com.typesafe.scalalogging
2+
3+
import org.slf4j.Marker
4+
5+
class LoggerTakingImplicitImpl[A] private[scalalogging] {
6+
7+
// Error
8+
9+
def error(message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.errorMessage[A]
10+
11+
def error(message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.errorMessageCause[A]
12+
13+
def error(message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.errorMessageArgs[A]
14+
15+
def error(marker: Marker, message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.errorMessageMarker[A]
16+
17+
def error(marker: Marker, message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.errorMessageCauseMarker[A]
18+
19+
def error(marker: Marker, message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.errorMessageArgsMarker[A]
20+
21+
// Warn
22+
23+
def warn(message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.warnMessage[A]
24+
25+
def warn(message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.warnMessageCause[A]
26+
27+
def warn(message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.warnMessageArgs[A]
28+
29+
def warn(marker: Marker, message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.warnMessageMarker[A]
30+
31+
def warn(marker: Marker, message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.warnMessageCauseMarker[A]
32+
33+
def warn(marker: Marker, message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.warnMessageArgsMarker[A]
34+
35+
// Info
36+
37+
def info(message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.infoMessage[A]
38+
39+
def info(message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.infoMessageCause[A]
40+
41+
def info(message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.infoMessageArgs[A]
42+
43+
def info(marker: Marker, message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.infoMessageMarker[A]
44+
45+
def info(marker: Marker, message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.infoMessageCauseMarker[A]
46+
47+
def info(marker: Marker, message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.infoMessageArgsMarker[A]
48+
49+
// Debug
50+
51+
def debug(message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.debugMessage[A]
52+
53+
def debug(message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.debugMessageCause[A]
54+
55+
def debug(message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.debugMessageArgs[A]
56+
57+
def debug(marker: Marker, message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.debugMessageMarker[A]
58+
59+
def debug(marker: Marker, message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.debugMessageCauseMarker[A]
60+
61+
def debug(marker: Marker, message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.debugMessageArgsMarker[A]
62+
63+
// Trace
64+
65+
def trace(message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.traceMessage[A]
66+
67+
def trace(message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.traceMessageCause[A]
68+
69+
def trace(message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.traceMessageArgs[A]
70+
71+
def trace(marker: Marker, message: String)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.traceMessageMarker[A]
72+
73+
def trace(marker: Marker, message: String, cause: Throwable)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.traceMessageCauseMarker[A]
74+
75+
def trace(marker: Marker, message: String, args: Any*)(implicit a: A): Unit = macro LoggerTakingImplicitMacro.traceMessageArgsMarker[A]
76+
77+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.typesafe.scalalogging
2+
3+
import org.slf4j.{Marker, Logger as Underlying }
4+
5+
trait LoggerImpl {
6+
def underlying: Underlying
7+
8+
9+
// Error
10+
inline def error(inline message: String): Unit = ${LoggerMacro.errorMessage('underlying, 'message)}
11+
inline def error(inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.errorMessageCause('underlying, 'message, 'cause)}
12+
inline def error(inline message: String, inline args: Any*): Unit = ${LoggerMacro.errorMessageArgs('underlying, 'message, 'args)}
13+
inline def error(inline marker: Marker, inline message: String): Unit = ${LoggerMacro.errorMessageMarker('underlying, 'marker, 'message)}
14+
inline def error(inline marker: Marker, inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.errorMessageCauseMarker('underlying, 'marker, 'message, 'cause)}
15+
inline def error(inline marker: Marker, inline message: String, inline args: Any*): Unit = ${LoggerMacro.errorMessageArgsMarker('underlying, 'marker, 'message, 'args)}
16+
inline def whenErrorEnabled(inline body: Unit): Unit = ${LoggerMacro.errorCode('underlying, 'body)}
17+
18+
19+
// Warn
20+
inline def warn(inline message: String): Unit = ${LoggerMacro.warnMessage('underlying, 'message)}
21+
inline def warn(inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.warnMessageCause('underlying, 'message, 'cause)}
22+
inline def warn(inline message: String, inline args: Any*): Unit = ${LoggerMacro.warnMessageArgs('underlying, 'message, 'args)}
23+
inline def warn(inline marker: Marker, inline message: String): Unit = ${LoggerMacro.warnMessageMarker('underlying, 'marker, 'message)}
24+
inline def warn(inline marker: Marker, inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.warnMessageCauseMarker('underlying, 'marker, 'message, 'cause)}
25+
inline def warn(inline marker: Marker, inline message: String, inline args: Any*): Unit = ${LoggerMacro.warnMessageArgsMarker('underlying, 'marker, 'message, 'args)}
26+
inline def whenWarnEnabled(inline body: Unit): Unit = ${LoggerMacro.warnCode('underlying, 'body)}
27+
28+
29+
// Info
30+
inline def info(inline message: String): Unit = ${LoggerMacro.infoMessage('underlying, 'message)}
31+
inline def info(inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.infoMessageCause('underlying, 'message, 'cause)}
32+
inline def info(inline message: String, inline args: Any*): Unit = ${LoggerMacro.infoMessageArgs('underlying, 'message, 'args)}
33+
inline def info(inline marker: Marker, inline message: String): Unit = ${LoggerMacro.infoMessageMarker('underlying, 'marker, 'message)}
34+
inline def info(inline marker: Marker, inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.infoMessageCauseMarker('underlying, 'marker, 'message, 'cause)}
35+
inline def info(inline marker: Marker, inline message: String, inline args: Any*): Unit = ${LoggerMacro.infoMessageArgsMarker('underlying, 'marker, 'message, 'args)}
36+
inline def whenInfoEnabled(inline body: Unit): Unit = ${LoggerMacro.infoCode('underlying, 'body)}
37+
38+
39+
// Debug
40+
inline def debug(inline message: String): Unit = ${LoggerMacro.debugMessage('underlying, 'message)}
41+
inline def debug(inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.debugMessageCause('underlying, 'message, 'cause)}
42+
inline def debug(inline message: String, inline args: Any*): Unit = ${LoggerMacro.debugMessageArgs('underlying, 'message, 'args)}
43+
inline def debug(inline marker: Marker, inline message: String): Unit = ${LoggerMacro.debugMessageMarker('underlying, 'marker, 'message)}
44+
inline def debug(inline marker: Marker, inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.debugMessageCauseMarker('underlying, 'marker, 'message, 'cause)}
45+
inline def debug(inline marker: Marker, inline message: String, inline args: Any*): Unit = ${LoggerMacro.debugMessageArgsMarker('underlying, 'marker, 'message, 'args)}
46+
inline def whenDebugEnabled(inline body: Unit): Unit = ${LoggerMacro.debugCode('underlying, 'body)}
47+
48+
49+
// Trace
50+
inline def trace(inline message: String): Unit = ${LoggerMacro.traceMessage('underlying, 'message)}
51+
inline def trace(inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.traceMessageCause('underlying, 'message, 'cause)}
52+
inline def trace(inline message: String, inline args: Any*): Unit = ${LoggerMacro.traceMessageArgs('underlying, 'message, 'args)}
53+
inline def trace(inline marker: Marker, inline message: String): Unit = ${LoggerMacro.traceMessageMarker('underlying, 'marker, 'message)}
54+
inline def trace(inline marker: Marker, inline message: String, inline cause: Throwable): Unit = ${LoggerMacro.traceMessageCauseMarker('underlying, 'marker, 'message, 'cause)}
55+
inline def trace(inline marker: Marker, inline message: String, inline args: Any*): Unit = ${LoggerMacro.traceMessageArgsMarker('underlying, 'marker, 'message, 'args)}
56+
inline def whenTraceEnabled(inline body: Unit): Unit = ${LoggerMacro.traceCode('underlying, 'body)}
57+
}

0 commit comments

Comments
 (0)