Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More Scala 3 backports #4369

Merged
merged 2 commits into from
Jan 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bsp/src/mill/bsp/BSP.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package mill.bsp

import mill.api.{Ctx, PathRef}
import mill.{Agg, T, Task}
import mill.{Agg, T, Task, given}
import mill.define.{Command, Discover, ExternalModule}
import mill.main.BuildInfo
import mill.eval.Evaluator
Expand Down
5 changes: 3 additions & 2 deletions javascriptlib/src/mill/javascriptlib/PublishModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package mill.javascriptlib

import mill.*
import os.*
import mill.scalalib.publish.licenseFormat

trait PublishModule extends TypeScriptModule {

Expand Down Expand Up @@ -213,14 +214,14 @@ trait PublishModule extends TypeScriptModule {
upstreams
}

override def typeRoots: T[ujson.Value] = Task.Anon {
override def typeRoots: T[ujson.Value] = Task {
ujson.Arr(
"node_modules/@types",
"declarations"
)
}

override def declarationDir: T[ujson.Value] = Task.Anon {
override def declarationDir: T[ujson.Value] = Task {
ujson.Str("declarations")
}

Expand Down
2 changes: 1 addition & 1 deletion scalajslib/src/mill/scalajslib/worker/ScalaJSWorker.scala
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,6 @@ private[scalajslib] class ScalaJSWorker(jobs: Int)
private[scalajslib] object ScalaJSWorkerExternalModule extends mill.define.ExternalModule {

def scalaJSWorker: Worker[ScalaJSWorker] =
Task.Worker { new ScalaJSWorker(Task.ctx.asInstanceOf[mill.api.Ctx.Jobs].jobs) }
Task.Worker { new ScalaJSWorker(Task.ctx().asInstanceOf[mill.api.Ctx.Jobs].jobs) }
lazy val millDiscover: Discover = Discover[this.type]
}
2 changes: 1 addition & 1 deletion scalalib/src/mill/scalalib/CoursierModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ trait CoursierModule extends mill.Module {
* @return The [[BoundDep]]
*/
def bindDependency: Task[Dep => BoundDep] = Task.Anon { (dep: Dep) =>
BoundDep((resolveCoursierDependency(): @nowarn).apply(dep), dep.force)
BoundDep((resolveCoursierDependency.apply(): @nowarn).apply(dep), dep.force)
}

@deprecated("To be replaced by bindDependency", "Mill after 0.11.0-M0")
Expand Down
2 changes: 1 addition & 1 deletion scalalib/src/mill/scalalib/Dependency.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package mill.scalalib

import mill.Task
import mill.{Task, given}
import mill.define.{Command, Discover, ExternalModule}
import mill.eval.Evaluator
import mill.scalalib.dependency.{DependencyUpdatesImpl, Format}
Expand Down
11 changes: 8 additions & 3 deletions scalalib/src/mill/scalalib/JavaModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package scalalib

import coursier.{core => cs}
import coursier.core.{BomDependency, Configuration, DependencyManagement, Resolution}
import coursier.params.ResolutionParams
import coursier.parse.JavaOrScalaModule
import coursier.parse.ModuleParser
import coursier.util.{EitherT, ModuleMatcher, Monad}
Expand Down Expand Up @@ -942,7 +943,8 @@ trait JavaModule
BoundDep(coursierDependency, force = false)
),
artifactTypes = Some(artifactTypes()),
resolutionParamsMapOpt = Some(_.withDefaultConfiguration(coursier.core.Configuration.compile))
resolutionParamsMapOpt =
Some((_: ResolutionParams).withDefaultConfiguration(coursier.core.Configuration.compile))
)
}

Expand All @@ -963,7 +965,8 @@ trait JavaModule
)
),
artifactTypes = Some(artifactTypes()),
resolutionParamsMapOpt = Some(_.withDefaultConfiguration(cs.Configuration.runtime))
resolutionParamsMapOpt =
Some((_: ResolutionParams).withDefaultConfiguration(cs.Configuration.runtime))
)
}

Expand Down Expand Up @@ -1402,7 +1405,9 @@ trait JavaModule
),
sources = true,
resolutionParamsMapOpt =
Some(_.withDefaultConfiguration(coursier.core.Configuration.compile))
Some(
(_: ResolutionParams).withDefaultConfiguration(coursier.core.Configuration.compile)
)
)
},
Task.Anon {
Expand Down
7 changes: 5 additions & 2 deletions scalalib/src/mill/scalalib/Lib.scala
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ object Lib {
resolutionParams: ResolutionParams = ResolutionParams()
): Result[Agg[PathRef]] = {
val depSeq = deps.iterator.toSeq
mill.util.Jvm.resolveDependencies(
val res = mill.util.Jvm.resolveDependencies(
repositories = repositories,
deps = depSeq.map(_.dep),
force = depSeq.filter(_.force).map(_.dep),
Expand All @@ -155,8 +155,11 @@ object Lib {
customizer = customizer,
ctx = ctx,
coursierCacheCustomizer = coursierCacheCustomizer,
deprecatedResolveFilter = _ => true,
resolutionParams = resolutionParams
).map(_.map(_.withRevalidateOnce))
)

res.map(_.map(_.withRevalidateOnce))
}

// bin-compat shim
Expand Down
2 changes: 1 addition & 1 deletion scalalib/src/mill/scalalib/PublishModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ trait PublishModule extends JavaModule { outer =>
)
val publishXmlDeps0 = {
val rootDepVersions = results.map(_.moduleVersion).toMap
publishIvyDeps().apply(rootDepVersions, bomDepMgmt)
publishIvyDeps.apply().apply(rootDepVersions, bomDepMgmt)
}
val overrides = {
val bomDepMgmt0 = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package mill.scalalib.dependency.versions
import mill.define.{BaseModule, Task}
import mill.eval.Evaluator
import mill.scalalib.dependency.metadata.{MetadataLoader, MetadataLoaderFactory}
import mill.scalalib.{JavaModule, Lib}
import mill.scalalib.{BoundDep, JavaModule, Lib}
import mill.api.Ctx.{Home, Log}
import mill.T

Expand Down Expand Up @@ -66,14 +66,19 @@ private[dependency] object VersionsFinder {
.map(bindDependency)
.iterator
.toSeq
Lib.resolveDependenciesMetadataSafe(

val x = Lib.resolveDependenciesMetadataSafe(
repositories = repos,
deps = dependencies,
mapDependencies = Some(mapDeps),
deps = dependencies: IterableOnce[BoundDep],
mapDependencies = Option(mapDeps),
customizer = custom,
ctx = Option(T.log),
coursierCacheCustomizer = cacheCustom,
ctx = Some(T.log)
).map { _ =>
resolutionParams = coursier.params.ResolutionParams(),
boms = Nil
)

x.map { _ =>
(javaModule, metadataLoaders, dependencies.map(_.dep))
}
}
Expand Down
18 changes: 9 additions & 9 deletions scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -150,20 +150,20 @@ trait ScalaNativeModule extends ScalaModule { outer =>
}
}
}
private[scalanativelib] def withScalaNativeBridge[T] = Task.Anon {
private[scalanativelib] def withScalaNativeBridge = Task.Anon {
new ScalaNativeBridge(
ScalaNativeWorkerExternalModule.scalaNativeWorker(),
bridgeFullClassPath()
)
}
// Location of the clang compiler
def nativeClang = Task {
os.Path(withScalaNativeBridge().apply(_.discoverClang()))
os.Path(withScalaNativeBridge.apply().apply(_.discoverClang()))
}

// Location of the clang++ compiler
def nativeClangPP = Task {
os.Path(withScalaNativeBridge().apply(_.discoverClangPP()))
os.Path(withScalaNativeBridge.apply().apply(_.discoverClangPP()))
}

// GC choice, either "none", "boehm", "immix" or "commix"
Expand All @@ -172,19 +172,19 @@ trait ScalaNativeModule extends ScalaModule { outer =>
}

def nativeGC = Task {
nativeGCInput().getOrElse(withScalaNativeBridge().apply(_.defaultGarbageCollector()))
nativeGCInput().getOrElse(withScalaNativeBridge.apply().apply(_.defaultGarbageCollector()))
}

def nativeTarget: T[Option[String]] = Task { None }

// Options that are passed to clang during compilation
def nativeCompileOptions = Task {
withScalaNativeBridge().apply(_.discoverCompileOptions())
withScalaNativeBridge.apply().apply(_.discoverCompileOptions())
}

// Options that are passed to clang during linking
def nativeLinkingOptions = Task {
withScalaNativeBridge().apply(_.discoverLinkingOptions())
withScalaNativeBridge.apply().apply(_.discoverLinkingOptions())
}

// Whether to link `@stub` methods, or ignore them
Expand Down Expand Up @@ -230,7 +230,7 @@ trait ScalaNativeModule extends ScalaModule { outer =>

private def nativeConfig: Task[NativeConfig] = Task.Anon {
val classpath = runClasspath().map(_.path).filter(_.toIO.exists).toList
withScalaNativeBridge().apply(_.config(
withScalaNativeBridge.apply().apply(_.config(
finalMainClassOpt(),
classpath.map(_.toIO),
nativeWorkdir().toIO,
Expand Down Expand Up @@ -274,7 +274,7 @@ trait ScalaNativeModule extends ScalaModule { outer =>

// Generates native binary
def nativeLink = Task {
os.Path(withScalaNativeBridge().apply(_.nativeLink(
os.Path(withScalaNativeBridge.apply().apply(_.nativeLink(
nativeConfig().config,
T.dest.toIO
)))
Expand Down Expand Up @@ -376,7 +376,7 @@ trait TestScalaNativeModule extends ScalaNativeModule with TestModule {
globSelectors: Task[Seq[String]]
): Task[(String, Seq[TestResult])] = Task.Anon {

val (close, framework) = withScalaNativeBridge().apply(_.getFramework(
val (close, framework) = withScalaNativeBridge.apply().apply(_.getFramework(
nativeLink().toIO,
forkEnv() ++
Map(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@ private[scalanativelib] class ScalaNativeWorker(jobs: Int)

private[scalanativelib] object ScalaNativeWorkerExternalModule extends mill.define.ExternalModule {
def scalaNativeWorker: Worker[ScalaNativeWorker] =
Task.Worker { new ScalaNativeWorker(Task.ctx.asInstanceOf[mill.api.Ctx.Jobs].jobs) }
Task.Worker { new ScalaNativeWorker(Task.ctx().asInstanceOf[mill.api.Ctx.Jobs].jobs) }
lazy val millDiscover: Discover = Discover[this.type]
}
Loading