diff options
Diffstat (limited to 'src/interactive/scala/tools/nsc/interactive')
5 files changed, 14 insertions, 28 deletions
diff --git a/src/interactive/scala/tools/nsc/interactive/CompilerControl.scala b/src/interactive/scala/tools/nsc/interactive/CompilerControl.scala index 586f011429..cb12cebc49 100644 --- a/src/interactive/scala/tools/nsc/interactive/CompilerControl.scala +++ b/src/interactive/scala/tools/nsc/interactive/CompilerControl.scala @@ -10,7 +10,7 @@ import scala.tools.nsc.io.AbstractFile import scala.tools.nsc.util.FailedInterrupt import scala.tools.nsc.util.EmptyAction import scala.tools.nsc.util.WorkScheduler -import scala.reflect.internal.util.{SourceFile, Position} +import scala.reflect.internal.util.SourceFile import scala.tools.nsc.util.InterruptReq /** Interface of interactive compiler to a client such as an IDE @@ -189,7 +189,7 @@ trait CompilerControl { self: Global => * continues with current pass. * Waits until source is fully type checked and returns body in response. * @param source The source file that needs to be fully typed. - * @param keepLoaded Whether to keep that file in the PC if it was not loaded before. If + * @param keepLoaded Whether to keep that file in the PC if it was not loaded before. If the file is already loaded, this flag is ignored. * @param response The response, which is set to the fully attributed tree of `source`. * If the unit corresponding to `source` has been removed in the meantime diff --git a/src/interactive/scala/tools/nsc/interactive/Global.scala b/src/interactive/scala/tools/nsc/interactive/Global.scala index 27a02c46a2..64535a749f 100644 --- a/src/interactive/scala/tools/nsc/interactive/Global.scala +++ b/src/interactive/scala/tools/nsc/interactive/Global.scala @@ -5,12 +5,12 @@ package scala.tools.nsc package interactive -import java.io.{ PrintWriter, StringWriter, FileReader, FileWriter } +import java.io.{ FileReader, FileWriter } import scala.collection.mutable -import mutable.{LinkedHashMap, SynchronizedMap, HashSet, SynchronizedSet} +import mutable.{LinkedHashMap, HashSet, SynchronizedSet} import scala.util.control.ControlThrowable import scala.tools.nsc.io.AbstractFile -import scala.reflect.internal.util.{ SourceFile, BatchSourceFile, Position, NoPosition } +import scala.reflect.internal.util.SourceFile import scala.tools.nsc.reporters._ import scala.tools.nsc.symtab._ import scala.tools.nsc.typechecker.Analyzer @@ -19,6 +19,8 @@ import scala.annotation.{ elidable, tailrec } import scala.language.implicitConversions import scala.tools.nsc.typechecker.Typers import scala.util.control.Breaks._ +import java.util.concurrent.ConcurrentHashMap +import scala.collection.JavaConverters.mapAsScalaMapConverter import scala.reflect.internal.Chars.isIdentifierStart /** @@ -159,33 +161,20 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") override def forInteractive = true override protected def synchronizeNames = true - override def newAsSeenFromMap(pre: Type, clazz: Symbol): AsSeenFromMap = - new InteractiveAsSeenFromMap(pre, clazz) - - class InteractiveAsSeenFromMap(pre: Type, clazz: Symbol) extends AsSeenFromMap(pre, clazz) { - /** The method formerly known as 'instParamsRelaxed' goes here if it's still necessary, - * which it is currently supposed it is not. - * - * If it is, change AsSeenFromMap method correspondingTypeArgument to call an overridable - * method rather than aborting in the failure case. - */ - } - /** A map of all loaded files to the rich compilation units that correspond to them. */ - val unitOfFile = new LinkedHashMap[AbstractFile, RichCompilationUnit] with - SynchronizedMap[AbstractFile, RichCompilationUnit] { + val unitOfFile = mapAsScalaMapConverter(new ConcurrentHashMap[AbstractFile, RichCompilationUnit] { override def put(key: AbstractFile, value: RichCompilationUnit) = { val r = super.put(key, value) - if (r.isEmpty) debugLog("added unit for "+key) + if (r == null) debugLog("added unit for "+key) r } - override def remove(key: AbstractFile) = { + override def remove(key: Any) = { val r = super.remove(key) - if (r.nonEmpty) debugLog("removed unit for "+key) + if (r != null) debugLog("removed unit for "+key) r } - } + }).asScala /** A set containing all those files that need to be removed * Units are removed by getUnit, typically once a unit is finished compiled. @@ -1105,7 +1094,7 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") val implicitlyAdded = viaView != NoSymbol members.add(sym, pre, implicitlyAdded) { (s, st) => val result = new TypeMember(s, st, - context.isAccessible(if (s.hasGetter) s.getter(s.owner) else s, pre, superAccess && !implicitlyAdded), + context.isAccessible(if (s.hasGetter) s.getterIn(s.owner) else s, pre, superAccess && !implicitlyAdded), inherited, viaView) result.prefix = pre diff --git a/src/interactive/scala/tools/nsc/interactive/Pickler.scala b/src/interactive/scala/tools/nsc/interactive/Pickler.scala index ddc0c8a068..ffd3b7bc64 100644 --- a/src/interactive/scala/tools/nsc/interactive/Pickler.scala +++ b/src/interactive/scala/tools/nsc/interactive/Pickler.scala @@ -2,8 +2,6 @@ package scala.tools.nsc.interactive import Lexer._ import java.io.Writer -import scala.language.implicitConversions -import scala.reflect.ClassTag /** An abstract class for writing and reading Scala objects to and * from a legible representation. The representation follows the following grammar: diff --git a/src/interactive/scala/tools/nsc/interactive/REPL.scala b/src/interactive/scala/tools/nsc/interactive/REPL.scala index ffa61b0524..e9cec31975 100644 --- a/src/interactive/scala/tools/nsc/interactive/REPL.scala +++ b/src/interactive/scala/tools/nsc/interactive/REPL.scala @@ -9,7 +9,6 @@ package interactive import scala.reflect.internal.util._ import scala.tools.nsc.reporters._ import scala.tools.nsc.io._ -import java.io.FileWriter /** Interface of interactive compiler to a client such as an IDE */ diff --git a/src/interactive/scala/tools/nsc/interactive/RichCompilationUnits.scala b/src/interactive/scala/tools/nsc/interactive/RichCompilationUnits.scala index b83c2cd095..b82888b2aa 100644 --- a/src/interactive/scala/tools/nsc/interactive/RichCompilationUnits.scala +++ b/src/interactive/scala/tools/nsc/interactive/RichCompilationUnits.scala @@ -5,7 +5,7 @@ package scala.tools.nsc package interactive -import scala.reflect.internal.util.{SourceFile, Position, NoPosition} +import scala.reflect.internal.util.SourceFile import scala.collection.mutable.ArrayBuffer trait RichCompilationUnits { self: Global => |