From 3dad81994fcfa23b437994229c0ea078c075c80c Mon Sep 17 00:00:00 2001 From: Lorenzo Gabriele Date: Tue, 14 Nov 2023 17:42:51 +0100 Subject: [PATCH] Import typeOf in Scala 2 only --- .../main/scala/ammonite/main/Defaults.scala | 25 +++++++++++-------- .../src/test/scala/ammonite/TestRepl.scala | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/amm/repl/src/main/scala/ammonite/main/Defaults.scala b/amm/repl/src/main/scala/ammonite/main/Defaults.scala index 8e0ff1388..e00a011b6 100644 --- a/amm/repl/src/main/scala/ammonite/main/Defaults.scala +++ b/amm/repl/src/main/scala/ammonite/main/Defaults.scala @@ -1,9 +1,8 @@ - package ammonite.main import java.io.InputStream -import ammonite.util.{ImportData, Imports, Util} +import ammonite.util.{ImportData, Imports, Name, Util} import coursierapi.Dependency import scala.io.Codec @@ -21,14 +20,20 @@ object Defaults{ ) } - val replImports = Imports( - ImportData("""ammonite.repl.ReplBridge.value.{ - codeColorsImplicit, - tprintColorsImplicit, - show - }""") - ) - def ammoniteHome = os.Path(System.getProperty("user.home"))/".ammonite" + def replImports(scalaVersion: String) = { + val sharedFields = Seq("codeColorsImplicit", "tprintColorsImplicit", "show") + val fields = if (scalaVersion.startsWith("2.")) sharedFields :+ "typeOf" else sharedFields + val importss = fields.map(field => + ImportData( + Name(field), + Name(field), + Name("_root_") :: Name("ammonite") :: Name("repl") :: Name("ReplBridge") :: Name("value") :: Nil, + ImportData.Term + ) + ) + Imports(importss) + } + def ammoniteHome = os.Path(System.getProperty("user.home")) / ".ammonite" def alreadyLoadedDependencies( resourceName: String = "amm-dependencies.txt" diff --git a/amm/repl/src/test/scala/ammonite/TestRepl.scala b/amm/repl/src/test/scala/ammonite/TestRepl.scala index 63ee33adf..87a085296 100644 --- a/amm/repl/src/test/scala/ammonite/TestRepl.scala +++ b/amm/repl/src/test/scala/ammonite/TestRepl.scala @@ -62,7 +62,7 @@ class TestRepl(compilerBuilder: ICompilerBuilder = CompilerBuilder()) { self => val frames = Ref(List(Frame.createInitial(initialClassLoader))) val sess0 = new SessionApiImpl(frames) - val baseImports = ammonite.main.Defaults.replImports ++ Interpreter.predefImports + val baseImports = ammonite.main.Defaults.replImports(compilerBuilder.scalaVersion) ++ Interpreter.predefImports val basePredefs = Seq( PredefInfo(Name("testPredef"), predef._1, false, predef._2) )