Skip to content

Commit 7225ec9

Browse files
committed
.
1 parent 34c51d8 commit 7225ec9

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

repl/src/dotty/tools/repl/ReplDriver.scala

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -342,27 +342,34 @@ class ReplDriver(settings: Array[String],
342342
case parsed: Parsed if parsed.source.content().mkString.startsWith("//>") =>
343343
// Check for magic comments specifying dependencies
344344
val sourceCode = parsed.source.content().mkString
345-
val depStrings = DependencyResolver.extractDependencies(sourceCode)
345+
println("Please using `:dep com.example::artifact:version` to add dependencies in the REPL")
346+
state
346347

348+
case parsed: Parsed if parsed.source.content().mkString.startsWith(":dep ") =>
349+
// Check for magic command specifying dependencies
350+
val sourceCode = parsed.source.content().mkString
351+
val depStrings = Seq(parsed.source.content().mkString.drop(":dep"))
352+
resolveDepStrings(depStrings)
347353
if depStrings.nonEmpty then
348-
val deps = depStrings.flatMap(DependencyResolver.parseDependency)
349-
if deps.nonEmpty then
350-
DependencyResolver.resolveDependencies(deps) match
351-
case Right(files) =>
352-
if files.nonEmpty then
353-
inContext(state.context):
354-
// Update both compiler classpath and classloader
355-
val prevOutputDir = ctx.settings.outputDir.value
356-
val prevClassLoader = rendering.classLoader()
357-
rendering.myClassLoader = DependencyResolver.addToCompilerClasspath(
358-
files,
359-
prevClassLoader,
360-
prevOutputDir
361-
)
362-
out.println(s"Resolved ${deps.size} dependencies (${files.size} JARs)")
363-
case Left(error) =>
364-
out.println(s"Error resolving dependencies: $error")
365-
state
354+
val deps = depStrings.flatMap(DependencyResolver.parseDependency)
355+
if deps.nonEmpty then
356+
DependencyResolver.resolveDependencies(deps) match
357+
case Right(files) =>
358+
if files.nonEmpty then
359+
inContext(state.context):
360+
// Update both compiler classpath and classloader
361+
val prevOutputDir = ctx.settings.outputDir.value
362+
val prevClassLoader = rendering.classLoader()
363+
rendering.myClassLoader = DependencyResolver.addToCompilerClasspath(
364+
files,
365+
prevClassLoader,
366+
prevOutputDir
367+
)
368+
out.println(s"Resolved ${deps.size} dependencies (${files.size} JARs)")
369+
case Left(error) =>
370+
out.println(s"Error resolving dependencies: $error")
371+
state
372+
366373

367374
case parsed: Parsed if parsed.trees.nonEmpty =>
368375
compile(parsed, state)

0 commit comments

Comments
 (0)