diff --git a/src/repl/scala/tools/nsc/interpreter/IMain.scala b/src/repl/scala/tools/nsc/interpreter/IMain.scala index b3e12067e26b..099220d7cf4c 100644 --- a/src/repl/scala/tools/nsc/interpreter/IMain.scala +++ b/src/repl/scala/tools/nsc/interpreter/IMain.scala @@ -775,7 +775,8 @@ class IMain(val settings: Settings, parentClassLoaderOverride: Option[ClassLoade } /** One line of code submitted by the user for interpretation */ - class Request(val line: String, origTrees: List[Tree], firstXmlPos: Position = NoPosition, generousImports: Boolean = false, synthetic: Boolean = false) extends ReplRequest { + class Request(val line: String, origTrees: List[Tree], firstXmlPos: Position = NoPosition, + generousImports: Boolean = false, synthetic: Boolean = false, storeResultInVal: Boolean = true) extends ReplRequest { def defines = defHandlers flatMap (_.definedSymbols) def definesTermNames: List[String] = defines collect { case s: TermSymbol => s.decodedName.toString } def imports = importedSymbols @@ -801,6 +802,7 @@ class IMain(val settings: Settings, parentClassLoaderOverride: Option[ClassLoade // Wrap last tree in a valdef to give user a nice handle for it (`resN`) val trees: List[Tree] = origTrees match { + case xs if !storeResultInVal => xs case init :+ tree => @tailrec def loop(scrut: Tree): Tree = scrut match { case _: Assign => tree diff --git a/src/repl/scala/tools/nsc/interpreter/PresentationCompilation.scala b/src/repl/scala/tools/nsc/interpreter/PresentationCompilation.scala index 04e1f790afb5..609fd0619345 100644 --- a/src/repl/scala/tools/nsc/interpreter/PresentationCompilation.scala +++ b/src/repl/scala/tools/nsc/interpreter/PresentationCompilation.scala @@ -60,7 +60,7 @@ trait PresentationCompilation { self: IMain => } val importer = global.mkImporter(pc) //println(s"pc: [[$line1]], <<${trees.size}>>") - val request = new Request(line1, trees map (t => importer.importTree(t)), generousImports = true) + val request = new Request(line1, trees map (t => importer.importTree(t)), generousImports = true, storeResultInVal = false) val origUnit = request.mkUnit val unit = new pc.CompilationUnit(origUnit.source) unit.body = pc.mkImporter(global).importTree(origUnit.body)