@@ -49,7 +49,7 @@ class ExtractDependencies extends Phase {
49
49
50
50
override def phaseName : String = " sbt-deps"
51
51
52
- override def isRunnable (implicit ctx : Context ): Boolean = {
52
+ override def isRunnable (using Context ): Boolean = {
53
53
def forceRun = ctx.settings.YdumpSbtInc .value || ctx.settings.YforceSbtPhases .value
54
54
super .isRunnable && (ctx.sbtCallback != null || forceRun)
55
55
}
@@ -62,7 +62,7 @@ class ExtractDependencies extends Phase {
62
62
// See the scripted test `constants` for an example where this matters.
63
63
// TODO: Add a `Phase#runsBefore` method ?
64
64
65
- override def run (implicit ctx : Context ): Unit = {
65
+ override def run (using Context ): Unit = {
66
66
val unit = ctx.compilationUnit
67
67
val collector = new ExtractDependenciesCollector
68
68
collector.traverse(unit.tpdTree)
@@ -105,7 +105,7 @@ class ExtractDependencies extends Phase {
105
105
* that is coming from either source code (not necessarily compiled in this compilation
106
106
* run) or from class file and calls respective callback method.
107
107
*/
108
- def recordDependency (dep : ClassDependency )(implicit ctx : Context ): Unit = {
108
+ def recordDependency (dep : ClassDependency )(using Context ): Unit = {
109
109
val fromClassName = classNameAsString(dep.from)
110
110
val sourceFile = ctx.compilationUnit.source.file.file
111
111
@@ -161,7 +161,7 @@ class ExtractDependencies extends Phase {
161
161
}
162
162
163
163
object ExtractDependencies {
164
- def classNameAsString (sym : Symbol )(implicit ctx : Context ): String =
164
+ def classNameAsString (sym : Symbol )(using Context ): String =
165
165
sym.fullName.stripModuleClassSuffix.toString
166
166
}
167
167
@@ -217,10 +217,10 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
217
217
* class/trait/object declared in the compilation unit. If none exists, issue warning.
218
218
*/
219
219
private var _responsibleForImports : Symbol = _
220
- private def responsibleForImports (implicit ctx : Context ) = {
220
+ private def responsibleForImports (using Context ) = {
221
221
def firstClassOrModule (tree : Tree ) = {
222
222
val acc = new TreeAccumulator [Symbol ] {
223
- def apply (x : Symbol , t : Tree )(implicit ctx : Context ) =
223
+ def apply (x : Symbol , t : Tree )(using Context ) =
224
224
t match {
225
225
case typeDef : TypeDef =>
226
226
typeDef.symbol
@@ -250,7 +250,7 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
250
250
* Resolves dependency source (that is, the closest non-local enclosing
251
251
* class from a given `ctx.owner`
252
252
*/
253
- private def resolveDependencySource (implicit ctx : Context ): Symbol = {
253
+ private def resolveDependencySource (using Context ): Symbol = {
254
254
def nonLocalEnclosingClass = {
255
255
var clazz = ctx.owner.enclosingClass
256
256
var owner = clazz
@@ -280,7 +280,7 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
280
280
usedName.update(name, scope)
281
281
}
282
282
283
- private def addUsedName (name : Name , scope : UseScope )(implicit ctx : Context ): Unit = {
283
+ private def addUsedName (name : Name , scope : UseScope )(using Context ): Unit = {
284
284
val fromClass = resolveDependencySource
285
285
if (fromClass.exists) { // can happen when visiting imports
286
286
assert(fromClass.isClass)
@@ -289,14 +289,14 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
289
289
}
290
290
291
291
/** Mangle a JVM symbol name in a format better suited for internal uses by sbt. */
292
- private def mangledName (sym : Symbol )(implicit ctx : Context ): Name = {
292
+ private def mangledName (sym : Symbol )(using Context ): Name = {
293
293
def constructorName = sym.owner.fullName ++ " ;init;"
294
294
295
295
if (sym.isConstructor) constructorName
296
296
else sym.name.stripModuleClassSuffix
297
297
}
298
298
299
- private def addMemberRefDependency (sym : Symbol )(implicit ctx : Context ): Unit =
299
+ private def addMemberRefDependency (sym : Symbol )(using Context ): Unit =
300
300
if (! ignoreDependency(sym)) {
301
301
val enclOrModuleClass = if (sym.is(ModuleVal )) sym.moduleClass else sym.enclosingClass
302
302
assert(enclOrModuleClass.isClass, s " $enclOrModuleClass, $sym" )
@@ -313,7 +313,7 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
313
313
}
314
314
}
315
315
316
- private def addInheritanceDependencies (tree : Template )(implicit ctx : Context ): Unit =
316
+ private def addInheritanceDependencies (tree : Template )(using Context ): Unit =
317
317
if (tree.parents.nonEmpty) {
318
318
val depContext =
319
319
if (tree.symbol.owner.isLocal) LocalDependencyByInheritance
@@ -324,7 +324,7 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
324
324
}
325
325
}
326
326
327
- private def ignoreDependency (sym : Symbol )(implicit ctx : Context ) =
327
+ private def ignoreDependency (sym : Symbol )(using Context ) =
328
328
! sym.exists ||
329
329
sym.isAbsent(canForce = false ) || // ignore dependencies that have a symbol but do not exist.
330
330
// e.g. java.lang.Object companion object
@@ -335,7 +335,7 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
335
335
/** Traverse the tree of a source file and record the dependencies and used names which
336
336
* can be retrieved using `dependencies` and`usedNames`.
337
337
*/
338
- override def traverse (tree : Tree )(implicit ctx : Context ): Unit = try {
338
+ override def traverse (tree : Tree )(using Context ): Unit = try {
339
339
tree match {
340
340
case Match (selector, _) =>
341
341
addPatMatDependency(selector.tpe)
@@ -415,7 +415,7 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
415
415
* The tests in sbt `types-in-used-names-a`, `types-in-used-names-b`,
416
416
* `as-seen-from-a` and `as-seen-from-b` rely on this.
417
417
*/
418
- private abstract class TypeDependencyTraverser (implicit ctx : Context ) extends TypeTraverser ()(using ctx) {
418
+ private abstract class TypeDependencyTraverser (using Context ) extends TypeTraverser ()(using ctx) {
419
419
protected def addDependency (symbol : Symbol ): Unit
420
420
421
421
val seen = new mutable.HashSet [Type ]
@@ -442,14 +442,14 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
442
442
}
443
443
}
444
444
445
- def addTypeDependency (tpe : Type )(implicit ctx : Context ): Unit = {
445
+ def addTypeDependency (tpe : Type )(using Context ): Unit = {
446
446
val traverser = new TypeDependencyTraverser {
447
447
def addDependency (symbol : Symbol ) = addMemberRefDependency(symbol)
448
448
}
449
449
traverser.traverse(tpe)
450
450
}
451
451
452
- def addPatMatDependency (tpe : Type )(implicit ctx : Context ): Unit = {
452
+ def addPatMatDependency (tpe : Type )(using Context ): Unit = {
453
453
val traverser = new TypeDependencyTraverser {
454
454
def addDependency (symbol : Symbol ) =
455
455
if (! ignoreDependency(symbol) && symbol.is(Sealed )) {
0 commit comments