Skip to content

Commit 57ba243

Browse files
committed
ScalafmtReflect: don't pass classloader to Config
Instead, use directly.
1 parent b4e9f05 commit 57ba243

File tree

2 files changed

+12
-16
lines changed

2 files changed

+12
-16
lines changed

scalafmt-dynamic/src/main/scala/org/scalafmt/dynamic/ScalafmtReflect.scala

+4-6
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,9 @@ case class ScalafmtReflect(
5050
// TODO: see implementation details for other versions of scalafmt, find where intellij config is kept
5151
lazy val intellijScalaFmtConfig: Option[ScalafmtReflectConfig] = {
5252
if (version == ScalafmtVersion(1, 5, 1)) {
53-
val scalaFmtConfigCls =
54-
classLoader.loadClass("org.scalafmt.config.ScalafmtConfig")
53+
val scalaFmtConfigCls = loadClass("org.scalafmt.config.ScalafmtConfig")
5554
val configTarget = scalaFmtConfigCls.invokeStatic("intellij")
56-
Some(new ScalafmtReflectConfig(this, configTarget, classLoader))
55+
Some(new ScalafmtReflectConfig(this)(configTarget))
5756
} else {
5857
None
5958
}
@@ -62,7 +61,7 @@ case class ScalafmtReflect(
6261
def parseConfig(path: Path): Try[ScalafmtReflectConfig] =
6362
parseConfigPost300(path)
6463
.map { configured =>
65-
new ScalafmtReflectConfig(this, configured.invoke("get"), classLoader)
64+
new ScalafmtReflectConfig(this)(configured.invoke("get"))
6665
}
6766
.recoverWith { case ReflectionException(e) =>
6867
Failure(new ScalafmtDynamicError.ConfigParseError(path, e.getMessage))
@@ -162,8 +161,7 @@ case class ScalafmtReflect(
162161
}
163162

164163
private def moduleInstance(fqn: String): Object = {
165-
val cls = classLoader.loadClass(fqn)
166-
val module = cls.getField("MODULE$")
164+
val module = loadClass(fqn).getField("MODULE$")
167165
module.setAccessible(true)
168166
module.get(null)
169167
}

scalafmt-dynamic/src/main/scala/org/scalafmt/dynamic/ScalafmtReflectConfig.scala

+8-10
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@ import org.scalafmt.dynamic.utils.ReflectUtils._
99
import scala.util.Try
1010

1111
//noinspection TypeAnnotation
12-
class ScalafmtReflectConfig private[dynamic] (
13-
val fmtReflect: ScalafmtReflect,
14-
private[dynamic] val target: Object,
15-
private val classLoader: ClassLoader
12+
class ScalafmtReflectConfig private[dynamic] (val fmtReflect: ScalafmtReflect)(
13+
private[dynamic] val target: Object
1614
) {
15+
import fmtReflect.classLoader
1716
private val targetCls = target.getClass
1817
private val constructor: Constructor[_] = targetCls.getConstructors()(0)
1918
private val constructorParams = constructor.getParameters.map(_.getName)
@@ -40,24 +39,23 @@ class ScalafmtReflectConfig private[dynamic] (
4039
}
4140
}
4241

43-
lazy val withSbtDialect: ScalafmtReflectConfig = {
44-
val newTarget =
42+
lazy val withSbtDialect: ScalafmtReflectConfig =
43+
new ScalafmtReflectConfig(fmtReflect)(
4544
try target.invoke("forSbt")
4645
catch {
4746
case ReflectionException(_: NoSuchMethodException) =>
4847
target.invoke("withDialect", (dialectCls, sbtDialect))
4948
}
50-
new ScalafmtReflectConfig(fmtReflect, newTarget, classLoader)
51-
}
49+
)
5250

5351
def withoutRewriteRules: ScalafmtReflectConfig = {
5452
if (hasRewriteRules) {
5553
// emulating this.copy(rewrite = RewriteSettings())
5654
val fieldsValues = constructorParams.map(param => target.invoke(param))
5755
fieldsValues(rewriteParamIdx) = emptyRewrites
58-
val targetNew =
56+
new ScalafmtReflectConfig(fmtReflect)(
5957
constructor.newInstance(fieldsValues: _*).asInstanceOf[Object]
60-
new ScalafmtReflectConfig(fmtReflect, targetNew, classLoader)
58+
)
6159
} else {
6260
this
6361
}

0 commit comments

Comments
 (0)