summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/04-basic-declarations-and-definitions.md2
-rw-r--r--src/compiler/scala/reflect/quasiquotes/Reifiers.scala2
-rw-r--r--src/compiler/scala/tools/nsc/Properties.scala8
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreeGen.scala2
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/Opcodes.scala2
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/BTypes.scala4
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/BTypesFromSymbols.scala2
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala5
-rw-r--r--src/compiler/scala/tools/nsc/reporters/Reporter.scala2
-rw-r--r--src/compiler/scala/tools/nsc/transform/patmat/MatchWarnings.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala37
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Contexts.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Implicits.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala4
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala4
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala5
-rw-r--r--src/eclipse/partest/.classpath2
-rw-r--r--src/eclipse/repl/.classpath3
-rw-r--r--src/eclipse/scaladoc/.classpath6
-rw-r--r--src/eclipse/test-junit/.classpath2
-rw-r--r--src/library/scala/Predef.scala5
-rw-r--r--src/library/scala/collection/generic/MutableSortedSetFactory.scala2
-rw-r--r--src/library/scala/collection/immutable/StringOps.scala7
-rw-r--r--src/library/scala/sys/BooleanProp.scala1
-rw-r--r--src/library/scala/sys/Prop.scala4
-rw-r--r--src/manual/scala/tools/docutil/ManMaker.scala2
-rw-r--r--src/partest-extras/scala/tools/partest/ASMConverters.scala2
-rw-r--r--src/partest-extras/scala/tools/partest/ReplTest.scala34
-rw-r--r--src/reflect/scala/reflect/api/Internals.scala2
-rw-r--r--src/reflect/scala/reflect/internal/Definitions.scala2
-rw-r--r--src/reflect/scala/reflect/internal/StdNames.scala2
-rw-r--r--src/reflect/scala/reflect/internal/Types.scala8
-rw-r--r--src/reflect/scala/reflect/internal/tpe/TypeConstraints.scala2
-rw-r--r--src/reflect/scala/reflect/macros/FrontEnds.scala2
-rw-r--r--src/reflect/scala/reflect/runtime/SymbolTable.scala2
-rw-r--r--src/reflect/scala/reflect/runtime/SynchronizedTypes.scala4
-rw-r--r--src/repl-jline/scala/tools/nsc/interpreter/jline/FileBackedHistory.scala12
-rw-r--r--src/repl-jline/scala/tools/nsc/interpreter/jline/JLineHistory.scala2
-rw-r--r--src/repl/scala/tools/nsc/interpreter/Formatting.scala3
-rw-r--r--src/repl/scala/tools/nsc/interpreter/ILoop.scala27
-rw-r--r--src/repl/scala/tools/nsc/interpreter/IMain.scala4
-rw-r--r--src/repl/scala/tools/nsc/interpreter/Pasted.scala8
-rw-r--r--src/repl/scala/tools/nsc/interpreter/ReplProps.scala46
-rwxr-xr-xsrc/scaladoc/scala/tools/nsc/doc/base/MemberLookupBase.scala2
-rw-r--r--src/scaladoc/scala/tools/nsc/doc/base/comment/Comment.scala2
-rw-r--r--src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DiagramStats.scala2
-rw-r--r--src/scaladoc/scala/tools/nsc/doc/model/Entity.scala2
-rw-r--r--src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala4
-rw-r--r--src/scaladoc/scala/tools/nsc/doc/model/ModelFactoryTypeSupport.scala2
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala4
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala6
-rw-r--r--test/disabled/coder/Coder.scala4
-rw-r--r--test/disabled/pos/spec-List.scala2
-rw-r--r--test/disabled/presentation/akka/src/akka/actor/ActorRef.scala2
-rw-r--r--test/disabled/run/coder2/Coder2.scala2
-rw-r--r--test/files/jvm/innerClassEnclMethodJavaReflection.scala2
-rw-r--r--test/files/jvm/interpreter.check2
-rw-r--r--test/files/jvm/throws-annot-from-java.check2
-rw-r--r--test/files/jvm/xml05.check2
-rw-r--r--test/files/neg/macro-invalidshape.check5
-rw-r--r--test/files/neg/missing-arg-list.check21
-rw-r--r--test/files/neg/missing-arg-list.scala13
-rw-r--r--test/files/neg/t6895.check6
-rw-r--r--test/files/neg/t6895.scala26
-rw-r--r--test/files/neg/t6895b.check9
-rw-r--r--test/files/neg/t6895b.scala39
-rw-r--r--test/files/neg/t836.scala2
-rw-r--r--test/files/neg/t8675b.scala2
-rw-r--r--test/files/neg/t8777.check6
-rw-r--r--test/files/neg/t8777.scala4
-rw-r--r--test/files/neg/t8892.check7
-rw-r--r--test/files/neg/t8892.scala2
-rw-r--r--test/files/neg/warn-unused-privates.scala2
-rw-r--r--test/files/pos/t6601/UsePrivateValueClass_2.scala2
-rw-r--r--test/files/pos/t8111.scala6
-rw-r--r--test/files/pos/t8954/t2.scala2
-rw-r--r--test/files/presentation/t8941b/IdempotencyTest.scala6
-rw-r--r--test/files/run/ReplacementMatching.scala4
-rw-r--r--test/files/run/class-symbol-contravariant.check2
-rw-r--r--test/files/run/classfile-format-51.scala2
-rw-r--r--test/files/run/complicatedmatch.scala2
-rw-r--r--test/files/run/constant-type.check2
-rw-r--r--test/files/run/constrained-types.check2
-rw-r--r--test/files/run/finally.check2
-rw-r--r--test/files/run/finally.scala4
-rw-r--r--test/files/run/kind-repl-command.check2
-rw-r--r--test/files/run/lub-visibility.check2
-rw-r--r--test/files/run/macro-bundle-repl.check2
-rw-r--r--test/files/run/macro-repl-basic.check2
-rw-r--r--test/files/run/macro-repl-dontexpand.check2
-rw-r--r--test/files/run/macro-system-properties.check2
-rw-r--r--test/files/run/reflection-equality.check2
-rw-r--r--test/files/run/reflection-magicsymbols-repl.check2
-rw-r--r--test/files/run/reflection-repl-classes.check2
-rw-r--r--test/files/run/reflection-repl-elementary.check2
-rw-r--r--test/files/run/reify-repl-fail-gracefully.check2
-rw-r--r--test/files/run/reify_newimpl_22.check2
-rw-r--r--test/files/run/reify_newimpl_23.check2
-rw-r--r--test/files/run/reify_newimpl_25.check2
-rw-r--r--test/files/run/reify_newimpl_26.check2
-rw-r--r--test/files/run/reify_newimpl_35.check2
-rw-r--r--test/files/run/repl-assign.check2
-rw-r--r--test/files/run/repl-bare-expr.check2
-rw-r--r--test/files/run/repl-colon-type.check2
-rw-r--r--test/files/run/repl-empty-package.check2
-rw-r--r--test/files/run/repl-out-dir.check2
-rw-r--r--test/files/run/repl-parens.check2
-rw-r--r--test/files/run/repl-paste-2.check2
-rw-r--r--test/files/run/repl-paste-3.check2
-rw-r--r--test/files/run/repl-paste-4.scala4
-rw-r--r--test/files/run/repl-paste-raw.scala4
-rw-r--r--test/files/run/repl-paste.check2
-rw-r--r--test/files/run/repl-power.check2
-rw-r--r--test/files/run/repl-reset.check2
-rw-r--r--test/files/run/repl-save.scala4
-rw-r--r--test/files/run/repl-term-macros.check2
-rw-r--r--test/files/run/repl-transcript.check2
-rw-r--r--test/files/run/repl-trim-stack-trace.scala4
-rw-r--r--test/files/run/repl-type-verbose.check2
-rw-r--r--test/files/run/sbt-icode-interface.scala42
-rw-r--r--test/files/run/t1987b/cce_test.scala2
-rw-r--r--test/files/run/t3376.check2
-rw-r--r--test/files/run/t4025.check2
-rw-r--r--test/files/run/t4172.check2
-rw-r--r--test/files/run/t4216.check2
-rw-r--r--test/files/run/t4285.check2
-rw-r--r--test/files/run/t4542.check2
-rw-r--r--test/files/run/t4594-repl-settings.scala36
-rw-r--r--test/files/run/t4671.check2
-rw-r--r--test/files/run/t4710.check2
-rw-r--r--test/files/run/t4950.check2
-rw-r--r--test/files/run/t5072.check2
-rw-r--r--test/files/run/t5256d.check2
-rw-r--r--test/files/run/t5535.check2
-rw-r--r--test/files/run/t5537.check2
-rw-r--r--test/files/run/t5583.check2
-rw-r--r--test/files/run/t5655.check2
-rw-r--r--test/files/run/t5789.check2
-rw-r--r--test/files/run/t6086-repl.check2
-rw-r--r--test/files/run/t6146b.check2
-rw-r--r--test/files/run/t6187.check2
-rw-r--r--test/files/run/t6273.check2
-rw-r--r--test/files/run/t6320.check2
-rw-r--r--test/files/run/t6329_repl.check2
-rw-r--r--test/files/run/t6329_repl_bug.check2
-rw-r--r--test/files/run/t6381.check2
-rw-r--r--test/files/run/t6434.check2
-rw-r--r--test/files/run/t6439.check2
-rw-r--r--test/files/run/t6440b.scala2
-rw-r--r--test/files/run/t6502.scala76
-rw-r--r--test/files/run/t6507.check4
-rw-r--r--test/files/run/t6549.check2
-rw-r--r--test/files/run/t6937.check2
-rw-r--r--test/files/run/t7185.check2
-rw-r--r--test/files/run/t7319.check2
-rw-r--r--test/files/run/t7482a.check2
-rw-r--r--test/files/run/t7634.check2
-rw-r--r--test/files/run/t7747-repl.check2
-rw-r--r--test/files/run/t7801.check2
-rw-r--r--test/files/run/t7805-repl-i.check3
-rw-r--r--test/files/run/t8010.scala4
-rw-r--r--test/files/run/t8843-repl-xlat.scala4
-rw-r--r--test/files/run/t8893b.scala2
-rw-r--r--test/files/run/t8918-unary-ids.check7
-rw-r--r--test/files/run/t9170.scala4
-rw-r--r--test/files/run/t9174.check2
-rw-r--r--test/files/run/t9206.scala4
-rw-r--r--test/files/run/tpeCache-tyconCache.check2
-rw-r--r--test/files/run/xMigration.check2
-rw-r--r--test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala4
-rw-r--r--test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala4
-rw-r--r--test/files/scalacheck/quasiquotes/ErrorProps.scala2
-rw-r--r--test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala2
-rw-r--r--test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala2
175 files changed, 484 insertions, 375 deletions
diff --git a/spec/04-basic-declarations-and-definitions.md b/spec/04-basic-declarations-and-definitions.md
index 8437d2ea71..7790428ca8 100644
--- a/spec/04-basic-declarations-and-definitions.md
+++ b/spec/04-basic-declarations-and-definitions.md
@@ -627,7 +627,7 @@ parameters and associate them with their types.
Each value parameter
declaration may optionally define a default argument. The default argument
expression $e$ is type-checked with an expected type $T'$ obtained
-by replacing all occurences of the function's type parameters in $T$ by
+by replacing all occurrences of the function's type parameters in $T$ by
the undefined type.
For every parameter $p_{i,j}$ with a default argument a method named
diff --git a/src/compiler/scala/reflect/quasiquotes/Reifiers.scala b/src/compiler/scala/reflect/quasiquotes/Reifiers.scala
index 8462debe21..b2002a07ea 100644
--- a/src/compiler/scala/reflect/quasiquotes/Reifiers.scala
+++ b/src/compiler/scala/reflect/quasiquotes/Reifiers.scala
@@ -317,7 +317,7 @@ trait Reifiers { self: Quasiquotes =>
* Reification of non-trivial list is done in two steps:
*
* 1. split the list into groups where every placeholder is always
- * put in a group of its own and all subsquent non-holeMap are
+ * put in a group of its own and all subsequent non-holeMap are
* grouped together; element is considered to be a placeholder if it's
* in the domain of the fill function;
*
diff --git a/src/compiler/scala/tools/nsc/Properties.scala b/src/compiler/scala/tools/nsc/Properties.scala
index ca7d8776d4..cb523edfe5 100644
--- a/src/compiler/scala/tools/nsc/Properties.scala
+++ b/src/compiler/scala/tools/nsc/Properties.scala
@@ -12,8 +12,16 @@ object Properties extends scala.util.PropertiesTrait {
protected def pickJarBasedOn = classOf[Global]
// settings based on jar properties, falling back to System prefixed by "scala."
+
+ // messages to display at startup or prompt, format string with string parameters
+ // Scala version, Java version, JVM name
def residentPromptString = scalaPropOrElse("resident.prompt", "\nnsc> ")
def shellPromptString = scalaPropOrElse("shell.prompt", "%nscala> ")
+ def shellWelcomeString = scalaPropOrElse("shell.welcome",
+ """Welcome to Scala %1$#s (%3$s, Java %2$s).
+ |Type in expressions for evaluation. Or try :help.""".stripMargin
+ )
+
// message to display at EOF (which by default ends with
// a newline so as not to break the user's terminal)
def shellInterruptedString = scalaPropOrElse("shell.interrupted", f":quit$lineSeparator")
diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
index 0575b9703e..bf53c47e9a 100644
--- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
@@ -233,7 +233,7 @@ abstract class TreeGen extends scala.reflect.internal.TreeGen with TreeDSL {
}
/** Return the synchronized part of the double-checked locking idiom around the syncBody tree. It guards with `cond` and
- * synchronizez on `clazz.this`. Additional statements can be included after initialization,
+ * synchronizes on `clazz.this`. Additional statements can be included after initialization,
* (outside the synchronized block).
*
* The idiom works only if the condition is using a volatile field.
diff --git a/src/compiler/scala/tools/nsc/backend/icode/Opcodes.scala b/src/compiler/scala/tools/nsc/backend/icode/Opcodes.scala
index 076f84ce7a..351a8e33d3 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/Opcodes.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/Opcodes.scala
@@ -86,7 +86,7 @@ trait Opcodes { self: ICodes =>
* Each case subclass will represent a specific operation.
*/
abstract class Instruction extends Cloneable {
- // Vlad: I used these for checking the quality of the implementation, and we should regularely run a build with them
+ // Vlad: I used these for checking the quality of the implementation, and we should regularly run a build with them
// enabled. But for production these should definitely be disabled, unless we enjoy getting angry emails from Greg :)
//if (!this.isInstanceOf[opcodes.LOAD_EXCEPTION])
// assert(consumed == consumedTypes.length)
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BTypes.scala b/src/compiler/scala/tools/nsc/backend/jvm/BTypes.scala
index 7f0aaa7305..8720da84e8 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/BTypes.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/BTypes.scala
@@ -648,7 +648,7 @@ abstract class BTypes {
* JVMS 4.7.7: the attribute must be present "if and only if it represents a local class
* or an anonymous class" (i.e. not for member classes).
*
- * The attribute is mis-named, it should be called "EnclosingClass". It has to be defined for all
+ * The attribute is misnamed, it should be called "EnclosingClass". It has to be defined for all
* local and anonymous classes, no matter if there is an enclosing method or not. Accordingly, the
* "class" field (see below) must be always defined, while the "method" field may be null.
*
@@ -798,7 +798,7 @@ abstract class BTypes {
* 2. The ClassBType should be built from a classfile, but the class could not be found on the
* compilation classpath.
*
- * Note that all ClassBTypes required in a non-optimzied run are built during code generation from
+ * Note that all ClassBTypes required in a non-optimized run are built during code generation from
* the class symbols referenced by the ASTs, so they have a valid info. Therefore the backend
* often invokes `info.get` (which asserts the info to exist) when reading data from the ClassBType.
*
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BTypesFromSymbols.scala b/src/compiler/scala/tools/nsc/backend/jvm/BTypesFromSymbols.scala
index 5f8f0e167c..cf29c8090b 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/BTypesFromSymbols.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/BTypesFromSymbols.scala
@@ -355,7 +355,7 @@ class BTypesFromSymbols[G <: Global](val global: G) extends BTypes {
// See comment in BTypes, when is a class marked static in the InnerClass table.
val isStaticNestedClass = isOriginallyStaticOwner(innerClassSym.originalOwner)
- // After lambdalift (which is where we are), the rawowoner field contains the enclosing class.
+ // After lambdalift (which is where we are), the rawowner field contains the enclosing class.
val enclosingClass = {
// (1) Example java source: class C { static class D { } }
// The Scala compiler creates a class and a module symbol for C. Because D is a static
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala
index 16e8aee1dd..00b4b8b667 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala
@@ -167,6 +167,11 @@ abstract class GenBCode extends BCodeSyncAndTry {
)
}
+ // shim for SBT, see https://github.com/sbt/sbt/issues/2076
+ // TODO put this closer to classfile writing once we have closure elimination
+ // TODO create a nicer public API to find out the correspondence between sourcefile and ultimate classfiles
+ currentUnit.icode += new icodes.IClass(cd.symbol)
+
// -------------- mirror class, if needed --------------
val mirrorC =
if (isTopLevelModuleClass(claszSymbol)) {
diff --git a/src/compiler/scala/tools/nsc/reporters/Reporter.scala b/src/compiler/scala/tools/nsc/reporters/Reporter.scala
index 3d688efae1..bd438f0e75 100644
--- a/src/compiler/scala/tools/nsc/reporters/Reporter.scala
+++ b/src/compiler/scala/tools/nsc/reporters/Reporter.scala
@@ -20,7 +20,7 @@ abstract class Reporter extends scala.reflect.internal.Reporter {
/** Informational messages. If `!force`, they may be suppressed. */
final def info(pos: Position, msg: String, force: Boolean): Unit = info0(pos, msg, INFO, force)
- /** For sending a message which should not be labeled as a warning/error,
+ /** For sending a message which should not be labelled as a warning/error,
* but also shouldn't require -verbose to be visible.
*/
def echo(msg: String): Unit = info(NoPosition, msg, force = true)
diff --git a/src/compiler/scala/tools/nsc/transform/patmat/MatchWarnings.scala b/src/compiler/scala/tools/nsc/transform/patmat/MatchWarnings.scala
index 9e9372f709..8beb1837ad 100644
--- a/src/compiler/scala/tools/nsc/transform/patmat/MatchWarnings.scala
+++ b/src/compiler/scala/tools/nsc/transform/patmat/MatchWarnings.scala
@@ -40,7 +40,7 @@ trait MatchWarnings {
}
}
- // Issue better warnings than "unreachable code" when people mis-use
+ // Issue better warnings than "unreachable code" when people misuse
// variable patterns thinking they bind to existing identifiers.
//
// Possible TODO: more deeply nested variable patterns, like
diff --git a/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala b/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala
index c80aaea160..b0bd9977a8 100644
--- a/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala
@@ -550,23 +550,18 @@ trait ContextErrors {
def ModuleUsingCompanionClassDefaultArgsErrror(tree: Tree) =
NormalTypeError(tree, "module extending its companion class cannot use default constructor arguments")
- def NotEnoughArgsError(tree: Tree, fun0: Tree, missing0: List[Symbol]) = {
- def notEnoughArgumentsMsg(fun: Tree, missing: List[Symbol]) = {
- val suffix = {
- if (missing.isEmpty) ""
- else {
- val keep = missing take 3 map (_.name)
- ".\nUnspecified value parameter%s %s".format(
- if (missing.tail.isEmpty) "" else "s",
- if ((missing drop 3).nonEmpty) (keep :+ "...").mkString(", ")
- else keep.mkString("", ", ", ".")
- )
- }
+ def NotEnoughArgsError(tree: Tree, fun: Tree, missing: List[Symbol]) = {
+ val notEnoughArgumentsMsg = {
+ val suffix = if (missing.isEmpty) "" else {
+ val keep = missing take 3 map (_.name)
+ val ess = if (missing.tail.isEmpty) "" else "s"
+ f".%nUnspecified value parameter$ess ${
+ keep.mkString("", ", ", if ((missing drop 3).nonEmpty) "..." else ".")
+ }"
}
-
- "not enough arguments for " + treeSymTypeMsg(fun) + suffix
+ s"not enough arguments for ${ treeSymTypeMsg(fun) }$suffix"
}
- NormalTypeError(tree, notEnoughArgumentsMsg(fun0, missing0))
+ NormalTypeError(tree, notEnoughArgumentsMsg)
}
//doTypedApply - patternMode
@@ -632,12 +627,16 @@ trait ContextErrors {
//adapt
def MissingArgsForMethodTpeError(tree: Tree, meth: Symbol) = {
+ val f = meth.name
+ val paf = s"$f(${ meth.asMethod.paramLists map (_ map (_ => "_") mkString ",") mkString ")(" })"
+ val advice = s"""
+ |Unapplied methods are only converted to functions when a function type is expected.
+ |You can make this conversion explicit by writing `$f _` or `$paf` instead of `$f`.""".stripMargin
val message =
if (meth.isMacro) MacroTooFewArgumentListsMessage
- else "missing arguments for " + meth.fullLocationString + (
- if (meth.isConstructor) ""
- else ";\nfollow this method with `_' if you want to treat it as a partially applied function"
- )
+ else s"""missing argument list for ${meth.fullLocationString}${
+ if (!meth.isConstructor) advice else ""
+ }"""
issueNormalTypeError(tree, message)
setError(tree)
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
index 7c931600e5..4c840818da 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
@@ -1495,7 +1495,7 @@ object ContextMode {
final val TypeConstructorAllowed: ContextMode = 1 << 16
/** TODO: The "sticky modes" are EXPRmode, PATTERNmode, TYPEmode.
- * To mimick the sticky mode behavior, when captain stickyfingers
+ * To mimic the sticky mode behavior, when captain stickyfingers
* comes around we need to propagate those modes but forget the other
* context modes which were once mode bits; those being so far the
* ones listed here.
diff --git a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala
index 3274c86072..7ce945dd6c 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala
@@ -846,7 +846,7 @@ trait Implicits {
errors.collectFirst { case err: DivergentImplicitTypeError => err } foreach saveDivergent
if (search.isDivergent && divergentError.isEmpty) {
- // Divergence triggered by `i` at this level of the implicit serach. We haven't
+ // Divergence triggered by `i` at this level of the implicit search. We haven't
// seen divergence so far, we won't issue this error just yet, and instead temporarily
// treat `i` as a failed candidate.
saveDivergent(DivergentImplicitTypeError(tree, pt, i.sym))
diff --git a/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala b/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala
index f90e32ce8a..f3856db552 100644
--- a/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala
@@ -436,7 +436,7 @@ trait MethodSynthesis {
if (tree.symbol.owner.isTrait || hasUnitType(basisSym)) rhs1
else gen.mkAssignAndReturn(basisSym, rhs1)
)
- derivedSym setPos tree.pos // cannot set it at createAndEnterSymbol because basisSym can possible stil have NoPosition
+ derivedSym setPos tree.pos // cannot set it at createAndEnterSymbol because basisSym can possibly still have NoPosition
val ddefRes = DefDef(derivedSym, new ChangeOwnerAndModuleClassTraverser(basisSym, derivedSym)(body))
// ValDef will have its position focused whereas DefDef will have original correct rangepos
// ideally positions would be correct at the creation time but lazy vals are really a special case
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 77c49a862a..c1655467e9 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -204,7 +204,7 @@ trait Namers extends MethodSynthesis {
}
// FIXME - this logic needs to be thoroughly explained
- // and justified. I know it's wrong with repect to package
+ // and justified. I know it's wrong with respect to package
// objects, but I think it's also wrong in other ways.
protected def conflict(newS: Symbol, oldS: Symbol) = (
( !oldS.isSourceMethod
@@ -1106,7 +1106,7 @@ trait Namers extends MethodSynthesis {
* As a first side effect, this method assigns a MethodType constructed using this
* return type to `meth`. This allows omitting the result type for recursive methods.
*
- * As another side effect, this method also assigns paramter types from the overridden
+ * As another side effect, this method also assigns parameter types from the overridden
* method to parameters of `meth` that have missing types (the parser accepts missing
* parameter types under -Yinfer-argument-types).
*/
diff --git a/src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala b/src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala
index 8a66c7d274..a702b3cdf5 100644
--- a/src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala
@@ -305,7 +305,7 @@ trait PatternTypers {
// clearing the type is necessary so that ref will be stabilized; see bug 881
val fun1 = typedPos(fun.pos)(Apply(Select(fun.clearType(), unapplyMethod), unapplyArgTree :: Nil))
- def makeTypedUnApply() = {
+ def makeTypedUnapply() = {
// the union of the expected type and the inferred type of the argument to unapply
val glbType = glb(ensureFullyDefined(pt) :: unapplyArg.tpe_* :: Nil)
val wrapInTypeTest = canRemedy && !(fun1.symbol.owner isNonBottomSubClass ClassTagClass)
@@ -325,7 +325,7 @@ trait PatternTypers {
if (isBlackbox(unapplyMethod)) duplErrorTree(BlackboxExtractorExpansion(tree))
else duplErrorTree(WrongShapeExtractorExpansion(tree))
} else
- makeTypedUnApply()
+ makeTypedUnapply()
}
def wrapClassTagUnapply(uncheckedPattern: Tree, classTagExtractor: Tree, pt: Type): Tree = {
diff --git a/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala b/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
index 059981aa37..5f2643cb25 100644
--- a/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
@@ -309,6 +309,7 @@ trait TypeDiagnostics {
// save the name because it will be mutated until it has been
// distinguished from the other types in the same error message
private val savedName = sym.name
+ private var postQualifiedWith: List[Symbol] = Nil
def restoreName() = sym.name = savedName
def modifyName(f: String => String) = sym setName newTypeName(f(sym.name.toString))
@@ -317,12 +318,12 @@ trait TypeDiagnostics {
*/
def qualifyDefaultNamespaces() = {
val intersect = Set(trueOwner, aliasOwner) intersect UnqualifiedOwners
- if (intersect.nonEmpty) preQualify()
+ if (intersect.nonEmpty && tp.typeSymbolDirect.name == tp.typeSymbol.name) preQualify()
}
// functions to manipulate the name
def preQualify() = modifyName(trueOwner.fullName + "." + _)
- def postQualify() = modifyName(_ + "(in " + trueOwner + ")")
+ def postQualify() = if (!(postQualifiedWith contains trueOwner)) { postQualifiedWith ::= trueOwner; modifyName(_ + "(in " + trueOwner + ")") }
def typeQualify() = if (sym.isTypeParameterOrSkolem) postQualify()
def nameQualify() = if (trueOwner.isPackageClass) preQualify() else postQualify()
diff --git a/src/eclipse/partest/.classpath b/src/eclipse/partest/.classpath
index 7e2f119193..de4acf8aa0 100644
--- a/src/eclipse/partest/.classpath
+++ b/src/eclipse/partest/.classpath
@@ -5,7 +5,7 @@
<classpathentry combineaccessrules="false" kind="src" path="/repl"/>
<classpathentry kind="var" path="M2_REPO/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/scala-lang/modules/scala-partest_2.11/1.0.0/scala-partest_2.11-1.0.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/scala-lang/modules/scala-partest_2.12.0-M1/1.0.7/scala-partest_2.12.0-M1-1.0.7.jar"/>
<classpathentry kind="var" path="SCALA_BASEDIR/lib/ant/ant.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry combineaccessrules="false" kind="src" path="/scala-compiler"/>
diff --git a/src/eclipse/repl/.classpath b/src/eclipse/repl/.classpath
index cbaabb9af1..14f7e16670 100644
--- a/src/eclipse/repl/.classpath
+++ b/src/eclipse/repl/.classpath
@@ -2,7 +2,8 @@
<classpath>
<classpathentry kind="src" path="repl"/>
<classpathentry combineaccessrules="false" kind="src" path="/asm"/>
- <classpathentry kind="var" path="M2_REPO/jline/jline/2.12/jline-2.12.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jline/jline/2.12.1/jline-2.12.1.jar"/>
+ <!-- <classpathentry kind="var" path="SCALA_BASEDIR/build/deps/repl/jline-2.12.jar"/> -->
<classpathentry combineaccessrules="false" kind="src" path="/scala-compiler"/>
<classpathentry combineaccessrules="false" kind="src" path="/scala-library"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
diff --git a/src/eclipse/scaladoc/.classpath b/src/eclipse/scaladoc/.classpath
index ee6427176a..2b8282cfb3 100644
--- a/src/eclipse/scaladoc/.classpath
+++ b/src/eclipse/scaladoc/.classpath
@@ -6,8 +6,8 @@
<classpathentry combineaccessrules="false" kind="src" path="/scala-compiler"/>
<classpathentry combineaccessrules="false" kind="src" path="/scala-library"/>
<classpathentry combineaccessrules="false" kind="src" path="/partest-extras"/>
- <classpathentry kind="var" path="M2_REPO/org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/scala-lang/modules/scala-partest_2.11/1.0.0/scala-partest_2.11-1.0.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/scala-lang/modules/scala-xml_2.12.0-M1/1.0.4/scala-xml_2.12.0-M1-1.0.4"/>
+ <classpathentry kind="var" path="M2_REPO/org/scala-lang/modules/scala-parser-combinators_2.12.0-M1/1.0.4/scala-parser-combinators_2.12.0-M1-1.0.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/scala-lang/modules/scala-partest_2.12.0-M1/1.0.7/scala-partest_2.12.0-M1-1.0.7.jar"/>
<classpathentry kind="output" path="build-quick-scaladoc"/>
</classpath>
diff --git a/src/eclipse/test-junit/.classpath b/src/eclipse/test-junit/.classpath
index 8a599bd8c7..710d33b030 100644
--- a/src/eclipse/test-junit/.classpath
+++ b/src/eclipse/test-junit/.classpath
@@ -2,7 +2,7 @@
<classpath>
<classpathentry kind="src" path="test-junit"/>
<classpathentry kind="var" path="SCALA_BASEDIR/lib/ant/ant.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.10/junit-4.10.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.11/junit-4.11.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/reflect"/>
<classpathentry combineaccessrules="false" kind="src" path="/scala-library"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala
index 012e7afd74..281e056330 100644
--- a/src/library/scala/Predef.scala
+++ b/src/library/scala/Predef.scala
@@ -82,6 +82,11 @@ object Predef extends LowPriorityImplicits with DeprecatedPredef {
*/
def classOf[T]: Class[T] = null // This is a stub method. The actual implementation is filled in by the compiler.
+ /** The `String` type in Scala has methods that come either from the underlying
+ * Java String (see the documentation corresponding to your Java version, for
+ * example [[http://docs.oracle.com/javase/8/docs/api/java/lang/String.html]]) or
+ * are added implicitly through [[scala.collection.immutable.StringOps]].
+ */
type String = java.lang.String
type Class[T] = java.lang.Class[T]
diff --git a/src/library/scala/collection/generic/MutableSortedSetFactory.scala b/src/library/scala/collection/generic/MutableSortedSetFactory.scala
index 0339a523e9..9bb12c2317 100644
--- a/src/library/scala/collection/generic/MutableSortedSetFactory.scala
+++ b/src/library/scala/collection/generic/MutableSortedSetFactory.scala
@@ -24,7 +24,7 @@ abstract class MutableSortedSetFactory[CC[A] <: mutable.SortedSet[A] with Sorted
/**
* mutable.SetBuilder uses '+' which is not a primitive for anything extending mutable.SetLike,
- * this causes serious perfomances issues since each time 'elems = elems + x'
+ * this causes serious performance issues since each time 'elems = elems + x'
* is evaluated elems is cloned (which is O(n)).
*
* Fortunately GrowingBuilder comes to rescue.
diff --git a/src/library/scala/collection/immutable/StringOps.scala b/src/library/scala/collection/immutable/StringOps.scala
index 6737692fb1..77333badf9 100644
--- a/src/library/scala/collection/immutable/StringOps.scala
+++ b/src/library/scala/collection/immutable/StringOps.scala
@@ -12,10 +12,9 @@ package immutable
import mutable.StringBuilder
-/**
- * This class serves as a wrapper providing `String`s with all the operations
- * found in indexed sequences. Where needed, instances of `String` object
- * are implicitly converted into this class.
+/** This class serves as a wrapper providing [[scala.Predef.String]]s with all
+ * the operations found in indexed sequences. Where needed, `String`s are
+ * implicitly converted into instances of this class.
*
* The difference between this class and `WrappedString` is that calling transformer
* methods such as `filter` and `map` will yield a `String` object, whereas a
diff --git a/src/library/scala/sys/BooleanProp.scala b/src/library/scala/sys/BooleanProp.scala
index e5e4668edb..b0008b41fd 100644
--- a/src/library/scala/sys/BooleanProp.scala
+++ b/src/library/scala/sys/BooleanProp.scala
@@ -50,6 +50,7 @@ object BooleanProp {
def get: String = "" + value
val clear, enable, disable, toggle = ()
def option = if (isSet) Some(value) else None
+ //def or[T1 >: Boolean](alt: => T1): T1 = if (value) true else alt
protected def zero = false
}
diff --git a/src/library/scala/sys/Prop.scala b/src/library/scala/sys/Prop.scala
index 17ae8cb69c..52a3d89ecb 100644
--- a/src/library/scala/sys/Prop.scala
+++ b/src/library/scala/sys/Prop.scala
@@ -58,6 +58,10 @@ trait Prop[+T] {
*/
def option: Option[T]
+ // Do not open until 2.12.
+ //** This value if the property is set, an alternative value otherwise. */
+ //def or[T1 >: T](alt: => T1): T1
+
/** Removes the property from the underlying map.
*/
def clear(): Unit
diff --git a/src/manual/scala/tools/docutil/ManMaker.scala b/src/manual/scala/tools/docutil/ManMaker.scala
index 47b861a80f..802b357f5f 100644
--- a/src/manual/scala/tools/docutil/ManMaker.scala
+++ b/src/manual/scala/tools/docutil/ManMaker.scala
@@ -18,7 +18,7 @@ class ManMaker extends Task {
/** The directory to put html pages in */
private var htmlout: Option[File] = None
- /** The directory to put man pags in */
+ /** The directory to put man pages in */
private var manout: Option[File] = None
diff --git a/src/partest-extras/scala/tools/partest/ASMConverters.scala b/src/partest-extras/scala/tools/partest/ASMConverters.scala
index f6e2d2a9ec..90f314428b 100644
--- a/src/partest-extras/scala/tools/partest/ASMConverters.scala
+++ b/src/partest-extras/scala/tools/partest/ASMConverters.scala
@@ -131,7 +131,7 @@ object ASMConverters {
import collection.mutable.{Map => MMap}
/**
- * Bytecode is equal modula local variable numbering and label numbering.
+ * Bytecode is equal modulo local variable numbering and label numbering.
*/
def equivalentBytecode(as: List[Instruction], bs: List[Instruction], varMap: MMap[Int, Int] = MMap(), labelMap: MMap[Int, Int] = MMap()): Boolean = {
def same(v1: Int, v2: Int, m: MMap[Int, Int]) = {
diff --git a/src/partest-extras/scala/tools/partest/ReplTest.scala b/src/partest-extras/scala/tools/partest/ReplTest.scala
index 1fde2370d3..20dfe0eb16 100644
--- a/src/partest-extras/scala/tools/partest/ReplTest.scala
+++ b/src/partest-extras/scala/tools/partest/ReplTest.scala
@@ -6,8 +6,9 @@
package scala.tools.partest
import scala.tools.nsc.Settings
-import scala.tools.nsc.interpreter.ILoop
+import scala.tools.nsc.interpreter.{ ILoop, replProps }
import java.lang.reflect.{ Method => JMethod, Field => JField }
+import scala.util.matching.Regex
import scala.util.matching.Regex.Match
/** A class for testing repl code.
@@ -19,30 +20,33 @@ abstract class ReplTest extends DirectTest {
// final because we need to enforce the existence of a couple settings.
final override def settings: Settings = {
val s = super.settings
- // s.Yreplsync.value = true
s.Xnojline.value = true
transformSettings(s)
}
+ def normalize(s: String) = s
/** True for SessionTest to preserve session text. */
def inSession: Boolean = false
- /** True to preserve welcome text. */
+ /** True to preserve welcome header, eliding version number. */
def welcoming: Boolean = false
- lazy val welcome = "(Welcome to Scala) version .*".r
- def normalize(s: String) = s match {
- case welcome(w) => w
- case s => s
- }
- def unwelcoming(s: String) = s match {
- case welcome(w) => false
- case _ => true
- }
+ lazy val header = replProps.welcome
def eval() = {
val s = settings
log("eval(): settings = " + s)
- //ILoop.runForTranscript(code, s).lines drop 1 // not always first line
val lines = ILoop.runForTranscript(code, s, inSession = inSession).lines
- if (welcoming) lines map normalize
- else lines filter unwelcoming
+ (if (welcoming) {
+ val welcome = "(Welcome to Scala).*".r
+ //val welcome = Regex.quote(header.lines.next).r
+ //val version = "(.*version).*".r // version on separate line?
+ //var inHead = false
+ lines map {
+ //case s @ welcome() => inHead = true ; s
+ //case version(s) if inHead => inHead = false ; s
+ case welcome(s) => s
+ case s => s
+ }
+ } else {
+ lines drop header.lines.size
+ }) map normalize
}
def show() = eval() foreach println
}
diff --git a/src/reflect/scala/reflect/api/Internals.scala b/src/reflect/scala/reflect/api/Internals.scala
index 577cd09295..1457fdc133 100644
--- a/src/reflect/scala/reflect/api/Internals.scala
+++ b/src/reflect/scala/reflect/api/Internals.scala
@@ -114,7 +114,7 @@ trait Internals { self: Universe =>
def substituteTypes(tree: Tree, from: List[Symbol], to: List[Type]): Tree
/** Substitute given tree `to` for occurrences of nodes that represent
- * `C.this`, where `C` referes to the given class `clazz`.
+ * `C.this`, where `C` refers to the given class `clazz`.
*/
def substituteThis(tree: Tree, clazz: Symbol, to: Tree): Tree
diff --git a/src/reflect/scala/reflect/internal/Definitions.scala b/src/reflect/scala/reflect/internal/Definitions.scala
index 3647d516a8..3552eb1713 100644
--- a/src/reflect/scala/reflect/internal/Definitions.scala
+++ b/src/reflect/scala/reflect/internal/Definitions.scala
@@ -103,7 +103,7 @@ trait Definitions extends api.StandardDefinitions {
def isNumericValueClass(sym: Symbol) = ScalaNumericValueClasses contains sym
def isGetClass(sym: Symbol) = (
- sym.name == nme.getClass_ // this condition is for performance only, this is called from `Typer#stabliize`.
+ sym.name == nme.getClass_ // this condition is for performance only, this is called from `Typer#stabilize`.
&& getClassMethods(sym)
)
diff --git a/src/reflect/scala/reflect/internal/StdNames.scala b/src/reflect/scala/reflect/internal/StdNames.scala
index 26e3cf6d0b..f1016e1b76 100644
--- a/src/reflect/scala/reflect/internal/StdNames.scala
+++ b/src/reflect/scala/reflect/internal/StdNames.scala
@@ -871,7 +871,7 @@ trait StdNames {
val toFloat: NameType = "toFloat"
val toDouble: NameType = "toDouble"
- // primitive operation methods for structual types mostly
+ // primitive operation methods for structural types mostly
// overlap with the above, but not for these two.
val toCharacter: NameType = "toCharacter"
val toInteger: NameType = "toInteger"
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala
index 6ded3bcbe3..9c681f3423 100644
--- a/src/reflect/scala/reflect/internal/Types.scala
+++ b/src/reflect/scala/reflect/internal/Types.scala
@@ -925,7 +925,7 @@ trait Types
def prefixString = trimPrefix(toString) + "#"
/** Convert toString avoiding infinite recursions by cutting off
- * after `maxTostringRecursions` recursion levels. Uses `safeToString`
+ * after `maxToStringRecursions` recursion levels. Uses `safeToString`
* to produce a string on each level.
*/
override final def toString: String = {
@@ -1496,7 +1496,7 @@ trait Types
} finally {
if (Statistics.canEnable) Statistics.popTimer(typeOpsStack, start)
}
- // [Martin] suppressing memo-ization solves the problem with "same type after erasure" errors
+ // [Martin] suppressing memoization solves the problem with "same type after erasure" errors
// when compiling with
// scalac scala.collection.IterableViewLike.scala scala.collection.IterableLike.scala
// I have not yet figured out precisely why this is the case.
@@ -2602,7 +2602,7 @@ trait Types
* based on the bounds of the type parameters of the quantified type
* In Scala syntax, given a java-defined class C[T <: String], the existential type C[_]
* is improved to C[_ <: String] before skolemization, which captures (get it?) what Java does:
- * enter the type paramers' bounds into the context when checking subtyping/type equality of existential types
+ * enter the type parameters' bounds into the context when checking subtyping/type equality of existential types
*
* Also tried doing this once during class file parsing or when creating the existential type,
* but that causes cyclic errors because it happens too early.
@@ -4277,7 +4277,7 @@ trait Types
matchesType(res1, res2.substSym(tparams2, tparams1), alwaysMatchSimple)
(tp1, tp2) match {
case (MethodType(params1, res1), MethodType(params2, res2)) =>
- params1.length == params2.length && // useful pre-secreening optimization
+ params1.length == params2.length && // useful pre-screening optimization
matchingParams(params1, params2, tp1.isInstanceOf[JavaMethodType], tp2.isInstanceOf[JavaMethodType]) &&
matchesType(res1, res2, alwaysMatchSimple) &&
tp1.isImplicit == tp2.isImplicit
diff --git a/src/reflect/scala/reflect/internal/tpe/TypeConstraints.scala b/src/reflect/scala/reflect/internal/tpe/TypeConstraints.scala
index f79099213a..e321a07f51 100644
--- a/src/reflect/scala/reflect/internal/tpe/TypeConstraints.scala
+++ b/src/reflect/scala/reflect/internal/tpe/TypeConstraints.scala
@@ -99,7 +99,7 @@ private[internal] trait TypeConstraints {
// a lower bound despite the fact that Nothing is always a lower bound. My current
// supposition is that the side-effecting type constraint accumulation mechanism
// depends on these subtype tests being performed to make forward progress when
- // there are mutally recursive type vars.
+ // there are mutually recursive type vars.
// See pos/t6367 and pos/t6499 for the competing test cases.
val mustConsider = tp.typeSymbol match {
case NothingClass => true
diff --git a/src/reflect/scala/reflect/macros/FrontEnds.scala b/src/reflect/scala/reflect/macros/FrontEnds.scala
index a770f325b2..8ad41382a8 100644
--- a/src/reflect/scala/reflect/macros/FrontEnds.scala
+++ b/src/reflect/scala/reflect/macros/FrontEnds.scala
@@ -12,7 +12,7 @@ package macros
trait FrontEnds {
self: blackbox.Context =>
- /** For sending a message which should not be labeled as a warning/error,
+ /** For sending a message which should not be labelled as a warning/error,
* but also shouldn't require -verbose to be visible.
* Use `enclosingPosition` if you're in doubt what position to pass to `pos`.
*/
diff --git a/src/reflect/scala/reflect/runtime/SymbolTable.scala b/src/reflect/scala/reflect/runtime/SymbolTable.scala
index 092bbd711f..eee2118898 100644
--- a/src/reflect/scala/reflect/runtime/SymbolTable.scala
+++ b/src/reflect/scala/reflect/runtime/SymbolTable.scala
@@ -3,7 +3,7 @@ package reflect
package runtime
/**
- * This symbol table trait fills in the definitions so that class information is obtained by refection.
+ * This symbol table trait fills in the definitions so that class information is obtained by reflection.
* It can be used either from a reflexive universe (class scala.reflect.runtime.JavaUniverse), or else from
* a runtime compiler that uses reflection to get a class information (class scala.tools.reflect.ReflectGlobal)
*/
diff --git a/src/reflect/scala/reflect/runtime/SynchronizedTypes.scala b/src/reflect/scala/reflect/runtime/SynchronizedTypes.scala
index 9bcf85dd6f..1d02cc7e89 100644
--- a/src/reflect/scala/reflect/runtime/SynchronizedTypes.scala
+++ b/src/reflect/scala/reflect/runtime/SynchronizedTypes.scala
@@ -82,9 +82,9 @@ private[reflect] trait SynchronizedTypes extends internal.Types { self: SymbolTa
override def toStringSubjects = _toStringSubjects.get
/* The idea of caches is as follows.
- * When in reflexive mode, a cache is either null, or one sentinal
+ * When in reflexive mode, a cache is either null, or one sentinel
* value representing undefined or the final defined
- * value. Hence, we can ask in non-synchronized ode whether the cache field
+ * value. Hence, we can ask in non-synchronized mode whether the cache field
* is non null and different from the sentinel (if a sentinel exists).
* If that's true, the cache value is current.
* Otherwise we arrive in one of the defined... methods listed below
diff --git a/src/repl-jline/scala/tools/nsc/interpreter/jline/FileBackedHistory.scala b/src/repl-jline/scala/tools/nsc/interpreter/jline/FileBackedHistory.scala
index b6c9792ec0..53a06ca972 100644
--- a/src/repl-jline/scala/tools/nsc/interpreter/jline/FileBackedHistory.scala
+++ b/src/repl-jline/scala/tools/nsc/interpreter/jline/FileBackedHistory.scala
@@ -7,9 +7,9 @@ package scala.tools.nsc.interpreter.jline
import _root_.jline.console.history.PersistentHistory
-
import scala.tools.nsc.interpreter
-import scala.tools.nsc.io.{File, Path}
+import scala.reflect.io.{ File, Path }
+import scala.tools.nsc.Properties.{ propOrNone, userHome }
/** TODO: file locking.
*/
@@ -85,9 +85,9 @@ object FileBackedHistory {
// val ContinuationChar = '\003'
// val ContinuationNL: String = Array('\003', '\n').mkString
- import scala.tools.nsc.Properties.userHome
-
- def defaultFileName = ".scala_history"
+ final val defaultFileName = ".scala_history"
- def defaultFile: File = File(Path(userHome) / defaultFileName)
+ def defaultFile: File = File(
+ propOrNone("scala.shell.histfile") map (Path.apply) getOrElse (Path(userHome) / defaultFileName)
+ )
}
diff --git a/src/repl-jline/scala/tools/nsc/interpreter/jline/JLineHistory.scala b/src/repl-jline/scala/tools/nsc/interpreter/jline/JLineHistory.scala
index 1f6a1f7022..3bc259252a 100644
--- a/src/repl-jline/scala/tools/nsc/interpreter/jline/JLineHistory.scala
+++ b/src/repl-jline/scala/tools/nsc/interpreter/jline/JLineHistory.scala
@@ -15,7 +15,7 @@ import scala.tools.nsc.interpreter
import scala.tools.nsc.interpreter.session.{History, SimpleHistory}
-/** A straight scalification of the jline interface which mixes
+/** A straight scalafication of the jline interface which mixes
* in the sparse jline-independent one too.
*/
trait JLineHistory extends JHistory with History {
diff --git a/src/repl/scala/tools/nsc/interpreter/Formatting.scala b/src/repl/scala/tools/nsc/interpreter/Formatting.scala
index 844997429c..4a9548730a 100644
--- a/src/repl/scala/tools/nsc/interpreter/Formatting.scala
+++ b/src/repl/scala/tools/nsc/interpreter/Formatting.scala
@@ -30,3 +30,6 @@ class Formatting(indent: Int) {
}
)
}
+object Formatting {
+ def forPrompt(prompt: String) = new Formatting(prompt.lines.toList.last.length)
+}
diff --git a/src/repl/scala/tools/nsc/interpreter/ILoop.scala b/src/repl/scala/tools/nsc/interpreter/ILoop.scala
index e8c6d02d1e..612bdd98c9 100644
--- a/src/repl/scala/tools/nsc/interpreter/ILoop.scala
+++ b/src/repl/scala/tools/nsc/interpreter/ILoop.scala
@@ -56,13 +56,9 @@ class ILoop(in0: Option[BufferedReader], protected val out: JPrintWriter)
private var globalFuture: Future[Boolean] = _
- /** Print a welcome message */
- def printWelcome() {
- echo(s"""
- |Welcome to Scala $versionString ($javaVmName, Java $javaVersion).
- |Type in expressions to have them evaluated.
- |Type :help for more information.""".trim.stripMargin
- )
+ /** Print a welcome message! */
+ def printWelcome(): Unit = {
+ Option(replProps.welcome) filter (!_.isEmpty) foreach echo
replinfo("[info] started at " + new java.util.Date)
}
@@ -111,10 +107,6 @@ class ILoop(in0: Option[BufferedReader], protected val out: JPrintWriter)
}
class ILoopInterpreter extends IMain(settings, out) {
- // the expanded prompt but without color escapes and without leading newline, for purposes of indenting
- override lazy val formatting: Formatting = new Formatting(
- (replProps.promptString format Properties.versionNumberString).lines.toList.last.length
- )
override protected def parentClassLoader =
settings.explicitParentLoader.getOrElse( classOf[ILoop].getClassLoader )
}
@@ -679,9 +671,8 @@ class ILoop(in0: Option[BufferedReader], protected val out: JPrintWriter)
}
def verbosity() = {
- val old = intp.printResults
- intp.printResults = !old
- echo("Switched " + (if (old) "off" else "on") + " result printing.")
+ intp.printResults = !intp.printResults
+ replinfo(s"Result printing is ${ if (intp.printResults) "on" else "off" }.")
}
/** Run one command submitted by the user. Two values are returned:
@@ -761,7 +752,8 @@ class ILoop(in0: Option[BufferedReader], protected val out: JPrintWriter)
private object paste extends Pasted {
import scala.util.matching.Regex.quote
- val ContinueString = " | "
+ val ContinuePrompt = replProps.continuePrompt
+ val ContinueString = replProps.continueText // " | "
val PromptString = prompt.lines.toList.last
val anyPrompt = s"""\\s*(?:${quote(PromptString.trim)}|${quote(AltPromptString.trim)})\\s*""".r
@@ -805,7 +797,7 @@ class ILoop(in0: Option[BufferedReader], protected val out: JPrintWriter)
echo("You typed two blank lines. Starting a new command.")
None
case IR.Incomplete =>
- in.readLine(paste.ContinueString) match {
+ in.readLine(paste.ContinuePrompt) match {
case null =>
// we know compilation is going to fail since we're at EOF and the
// parser thinks the input is still incomplete, but since this is
@@ -948,8 +940,9 @@ object ILoop {
Console.withOut(ostream) {
val output = new JPrintWriter(new OutputStreamWriter(ostream), true) {
// skip margin prefix for continuation lines, unless preserving session text for test
+ // should test for repl.paste.ContinueString or replProps.continueText.contains(ch)
override def write(str: String) =
- if (!inSession && (str forall (ch => ch.isWhitespace || ch == '|'))) () // repl.paste.ContinueString
+ if (!inSession && (str forall (ch => ch.isWhitespace || ch == '|'))) ()
else super.write(str)
}
val input = new BufferedReader(new StringReader(code.trim + "\n")) {
diff --git a/src/repl/scala/tools/nsc/interpreter/IMain.scala b/src/repl/scala/tools/nsc/interpreter/IMain.scala
index 2550a5dc57..841b4abfa5 100644
--- a/src/repl/scala/tools/nsc/interpreter/IMain.scala
+++ b/src/repl/scala/tools/nsc/interpreter/IMain.scala
@@ -113,9 +113,7 @@ class IMain(@BeanProperty val factory: ScriptEngineFactory, initialSettings: Set
def this() = this(new Settings())
// the expanded prompt but without color escapes and without leading newline, for purposes of indenting
- lazy val formatting: Formatting = new Formatting(
- (replProps.promptString format Properties.versionNumberString).lines.toList.last.length
- )
+ lazy val formatting = Formatting.forPrompt(replProps.promptText)
lazy val reporter: ReplReporter = new ReplReporter(this)
import formatting.indentCode
diff --git a/src/repl/scala/tools/nsc/interpreter/Pasted.scala b/src/repl/scala/tools/nsc/interpreter/Pasted.scala
index 5f388eb15b..f8d8c2ddb1 100644
--- a/src/repl/scala/tools/nsc/interpreter/Pasted.scala
+++ b/src/repl/scala/tools/nsc/interpreter/Pasted.scala
@@ -21,7 +21,13 @@ abstract class Pasted {
def PromptString: String
def AltPromptString: String = "scala> "
- private val testBoth = PromptString != AltPromptString
+ /* `testBoth` cannot be a val, as `Pasted` is inherited by `object paste` in ILoop,
+ which would cause `val testBoth` to be initialized before `val PromptString` was.
+
+ object paste extends Pasted {
+ val PromptString = prompt.lines.toList.last
+ */
+ private def testBoth = PromptString != AltPromptString
private val spacey = " \t".toSet
def matchesPrompt(line: String) = matchesString(line, PromptString) || testBoth && matchesString(line, AltPromptString)
diff --git a/src/repl/scala/tools/nsc/interpreter/ReplProps.scala b/src/repl/scala/tools/nsc/interpreter/ReplProps.scala
index df65e9974d..588d92f81b 100644
--- a/src/repl/scala/tools/nsc/interpreter/ReplProps.scala
+++ b/src/repl/scala/tools/nsc/interpreter/ReplProps.scala
@@ -6,9 +6,11 @@
package scala.tools.nsc
package interpreter
-import Properties.shellPromptString
+import Properties.{ javaVersion, javaVmName, shellPromptString, shellWelcomeString,
+ versionString, versionNumberString }
import scala.sys._
import Prop._
+import java.util.{ Formattable, FormattableFlags, Formatter }
class ReplProps {
private def bool(name: String) = BooleanProp.keyExists(name)
@@ -22,12 +24,44 @@ class ReplProps {
val trace = bool("scala.repl.trace")
val power = bool("scala.repl.power")
- // Handy system prop for shell prompt, or else pick it up from compiler.properties
- val promptString = Prop[String]("scala.repl.prompt").option getOrElse (if (info) "%nscala %s> " else shellPromptString)
- val prompt = {
+ def enversion(s: String) = {
+ import FormattableFlags._
+ val v = new Formattable {
+ override def formatTo(formatter: Formatter, flags: Int, width: Int, precision: Int) = {
+ val version = if ((flags & ALTERNATE) != 0) versionNumberString else versionString
+ val left = if ((flags & LEFT_JUSTIFY) != 0) "-" else ""
+ val w = if (width >= 0) s"$width" else ""
+ val p = if (precision >= 0) s".$precision" else ""
+ val fmt = s"%${left}${w}${p}s"
+ formatter.format(fmt, version)
+ }
+ }
+ s.format(v, javaVersion, javaVmName)
+ }
+ def encolor(s: String) = {
import scala.io.AnsiColor.{ MAGENTA, RESET }
- val p = promptString format Properties.versionNumberString
- if (colorOk) s"$MAGENTA$p$RESET" else p
+ if (colorOk) s"$MAGENTA$s$RESET" else s
+ }
+
+ // Handy system prop for shell prompt, or else pick it up from compiler.properties
+ val promptString = Prop[String]("scala.repl.prompt").option getOrElse (if (info) "%nscala %#s> " else shellPromptString)
+ val promptText = enversion(promptString)
+ val prompt = encolor(promptText)
+
+ // Prompt for continued input, will be right-adjusted to width of the primary prompt
+ val continueString = Prop[String]("scala.repl.continue").option getOrElse "| "
+ val continueText = {
+ val text = enversion(continueString)
+ val margin = promptText.lines.toList.last.length - text.length
+ if (margin > 0) " " * margin + text else text
+ }
+ val continuePrompt = encolor(continueText)
+
+ // Next time.
+ //def welcome = enversion(Prop[String]("scala.repl.welcome") or shellWelcomeString)
+ def welcome = enversion {
+ val p = Prop[String]("scala.repl.welcome")
+ if (p.isSet) p.get else shellWelcomeString
}
/** CSV of paged,across to enable pagination or `-x` style
diff --git a/src/scaladoc/scala/tools/nsc/doc/base/MemberLookupBase.scala b/src/scaladoc/scala/tools/nsc/doc/base/MemberLookupBase.scala
index f853df0484..9de6ec4ab9 100755
--- a/src/scaladoc/scala/tools/nsc/doc/base/MemberLookupBase.scala
+++ b/src/scaladoc/scala/tools/nsc/doc/base/MemberLookupBase.scala
@@ -114,7 +114,7 @@ trait MemberLookupBase {
// Maintaining compatibility with previous links is a bit tricky here:
// we have a preference for term names for all terms except for the last, where we prefer a class:
// How to do this:
- // - at each step we do a DFS search with the prefered strategy
+ // - at each step we do a DFS search with the preferred strategy
// - if the search doesn't return any members, we backtrack on the last decision
// * we look for terms with the last member's name
// * we look for types with the same name, all the way up
diff --git a/src/scaladoc/scala/tools/nsc/doc/base/comment/Comment.scala b/src/scaladoc/scala/tools/nsc/doc/base/comment/Comment.scala
index a3d05ae50b..e5eb68d65a 100644
--- a/src/scaladoc/scala/tools/nsc/doc/base/comment/Comment.scala
+++ b/src/scaladoc/scala/tools/nsc/doc/base/comment/Comment.scala
@@ -93,7 +93,7 @@ abstract class Comment {
def todo: List[Body]
/** Whether the entity is deprecated. Using the `@deprecated` Scala attribute
- * is prefereable to using this Scaladoc tag. */
+ * is preferable to using this Scaladoc tag. */
def deprecated: Option[Body]
/** An additional note concerning the contract of the entity. */
diff --git a/src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DiagramStats.scala b/src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DiagramStats.scala
index ab8e9e2756..12c609af49 100644
--- a/src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DiagramStats.scala
+++ b/src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DiagramStats.scala
@@ -36,7 +36,7 @@ object DiagramStats {
private[this] val filterTrack = new TimeTracker("diagrams model filtering")
private[this] val modelTrack = new TimeTracker("diagrams model generation")
private[this] val dotGenTrack = new TimeTracker("dot diagram generation")
- private[this] val dotRunTrack = new TimeTracker("dot process runnning")
+ private[this] val dotRunTrack = new TimeTracker("dot process running")
private[this] val svgTrack = new TimeTracker("svg processing")
private[this] var brokenImages = 0
private[this] var fixedImages = 0
diff --git a/src/scaladoc/scala/tools/nsc/doc/model/Entity.scala b/src/scaladoc/scala/tools/nsc/doc/model/Entity.scala
index 90de51d763..d55c51b19c 100644
--- a/src/scaladoc/scala/tools/nsc/doc/model/Entity.scala
+++ b/src/scaladoc/scala/tools/nsc/doc/model/Entity.scala
@@ -183,7 +183,7 @@ trait MemberEntity extends Entity {
/** Indicates whether the member is inherited by implicit conversion */
def isImplicitlyInherited: Boolean
- /** Indicates whether there is another member with the same name in the template that will take precendence */
+ /** Indicates whether there is another member with the same name in the template that will take precedence */
def isShadowedImplicit: Boolean
/** Indicates whether there are other implicitly inherited members that have similar signatures (and thus they all
diff --git a/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala b/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala
index 178af3d4ba..3432e5e150 100644
--- a/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala
+++ b/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala
@@ -478,7 +478,7 @@ class ModelFactory(val global: Global, val settings: doc.Settings) {
override lazy val comment = {
def nonRootTemplate(sym: Symbol): Option[DocTemplateImpl] =
if (sym eq RootPackage) None else findTemplateMaybe(sym)
- /* Variable precendence order for implicitly added members: Take the variable definitions from ...
+ /* Variable precedence order for implicitly added members: Take the variable definitions from ...
* 1. the target of the implicit conversion
* 2. the definition template (owner)
* 3. the current template
@@ -994,7 +994,7 @@ class ModelFactory(val global: Global, val settings: doc.Settings) {
// pruning modules that shouldn't be documented
// Why Symbol.isInitialized? Well, because we need to avoid exploring all the space available to scaladoc
// from the classpath -- scaladoc is a hog, it will explore everything starting from the root package unless we
- // somehow prune the tree. And isInitialized is a good heuristic for prunning -- if the package was not explored
+ // somehow prune the tree. And isInitialized is a good heuristic for pruning -- if the package was not explored
// during typer and refchecks, it's not necessary for the current application and there's no need to explore it.
(!sym.isModule || sym.moduleClass.isInitialized) &&
// documenting only public and protected members
diff --git a/src/scaladoc/scala/tools/nsc/doc/model/ModelFactoryTypeSupport.scala b/src/scaladoc/scala/tools/nsc/doc/model/ModelFactoryTypeSupport.scala
index ea72fa6095..45745b5f55 100644
--- a/src/scaladoc/scala/tools/nsc/doc/model/ModelFactoryTypeSupport.scala
+++ b/src/scaladoc/scala/tools/nsc/doc/model/ModelFactoryTypeSupport.scala
@@ -112,7 +112,7 @@ trait ModelFactoryTypeSupport {
def needsPrefix: Boolean = {
if ((owner != bSym.owner || preSym.isRefinementClass) && (normalizeTemplate(owner) != inTpl.sym))
return true
- // don't get tricked into prefixng method type params and existentials:
+ // don't get tricked into prefixing method type params and existentials:
// I tried several tricks BUT adding the method for which I'm creating the type => that simply won't scale,
// as ValueParams are independent of their parent member, and I really don't want to add this information to
// all terms, as we're already over the allowed memory footprint
diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala
index 9cc1f4a0f6..04e37085b8 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala
@@ -16,7 +16,7 @@ class SeqCoder(words: List[String]) {
'2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL",
'6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ")
- /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
+ /** Invert the mnemonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
private val charCode: Map[Char, Char] =
for ((digit, letters) <- m; letter <- letters) yield letter -> digit
@@ -63,7 +63,7 @@ class ParCoder(words: List[String]) {
'2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL",
'6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ")
- /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
+ /** Invert the mnemonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
private val charCode: Map[Char, Char] =
for ((digit, letters) <- m; letter <- letters) yield letter -> digit
diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala
index ba32036002..9300851b5f 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala
@@ -425,7 +425,7 @@ trait SequentialOps[T] {
}
def sequentialDiff(sq: Seq[T], sz: Int) = {
- val occmap = occurences(sq)
+ val occmap = occurrences(sq)
val b = new collection.mutable.ArrayBuffer[T]
var i = 0
@@ -442,7 +442,7 @@ trait SequentialOps[T] {
}
def sequentialIntersect(sq: Seq[T], sz: Int) = {
- val occmap = occurences(sq)
+ val occmap = occurrences(sq)
val b = new collection.mutable.ArrayBuffer[T]
var i = 0
@@ -461,7 +461,7 @@ trait SequentialOps[T] {
res
}
- private def occurences(sq: Seq[T]) = {
+ private def occurrences(sq: Seq[T]) = {
val occmap = new collection.mutable.HashMap[T, Int] { override def default(k: T) = 0 }
for (elem <- sq.iterator) occmap(elem) += 1
occmap
diff --git a/test/disabled/coder/Coder.scala b/test/disabled/coder/Coder.scala
index 4e29c2a6ee..62b99e0cf0 100644
--- a/test/disabled/coder/Coder.scala
+++ b/test/disabled/coder/Coder.scala
@@ -10,7 +10,7 @@ class SeqCoder(words: List[String]) {
'2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL",
'6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ")
- /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
+ /** Invert the mnemonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
private val charCode: Map[Char, Char] =
for ((digit, letters) <- m; letter <- letters) yield letter -> digit
@@ -65,7 +65,7 @@ class ParCoder(words: List[String]) {
'2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL",
'6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ")
- /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
+ /** Invert the mnemonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
private val charCode: Map[Char, Char] =
for ((digit, letters) <- m; letter <- letters) yield letter -> digit
diff --git a/test/disabled/pos/spec-List.scala b/test/disabled/pos/spec-List.scala
index b31e035c1b..6bed08ae8a 100644
--- a/test/disabled/pos/spec-List.scala
+++ b/test/disabled/pos/spec-List.scala
@@ -438,7 +438,7 @@ case object Nil extends List[Nothing] {
throw new NoSuchElementException("head of empty list")
override def tail: List[Nothing] =
throw new NoSuchElementException("tail of empty list")
- // Removal of equals method here might lead to an infinite recusion similar to IntMap.equals.
+ // Removal of equals method here might lead to an infinite recursion similar to IntMap.equals.
override def equals(that: Any) = that match {
case that1: Seq[_] => that1.isEmpty
case _ => false
diff --git a/test/disabled/presentation/akka/src/akka/actor/ActorRef.scala b/test/disabled/presentation/akka/src/akka/actor/ActorRef.scala
index da0b63006a..97bb710e29 100644
--- a/test/disabled/presentation/akka/src/akka/actor/ActorRef.scala
+++ b/test/disabled/presentation/akka/src/akka/actor/ActorRef.scala
@@ -1384,7 +1384,7 @@ trait ScalaActorRef extends ActorRefShared { ref: ActorRef =>
"\n\tYou have probably: " +
"\n\t\t1. Sent a message to an Actor from an instance that is NOT an Actor." +
"\n\t\t2. Invoked a method on an TypedActor from an instance NOT an TypedActor." +
- "\n\tElse you might want to use 'reply_?' which returns Boolean(true) if succes and Boolean(false) if no sender in scope")
+ "\n\tElse you might want to use 'reply_?' which returns Boolean(true) if success and Boolean(false) if no sender in scope")
/**
* Use <code>reply_?(..)</code> to reply with a message to the original sender of the message currently
diff --git a/test/disabled/run/coder2/Coder2.scala b/test/disabled/run/coder2/Coder2.scala
index 43b2e9bcb8..c1ec70b842 100644
--- a/test/disabled/run/coder2/Coder2.scala
+++ b/test/disabled/run/coder2/Coder2.scala
@@ -10,7 +10,7 @@ class SeqCoder(words: List[String]) {
'2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL",
'6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ")
- /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
+ /** Invert the mnemonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */
private val charCode: Map[Char, Char] =
for ((digit, letters) <- m; letter <- letters) yield letter -> digit
diff --git a/test/files/jvm/innerClassEnclMethodJavaReflection.scala b/test/files/jvm/innerClassEnclMethodJavaReflection.scala
index ee39cb43bf..a4d64d0b67 100644
--- a/test/files/jvm/innerClassEnclMethodJavaReflection.scala
+++ b/test/files/jvm/innerClassEnclMethodJavaReflection.scala
@@ -8,7 +8,7 @@ object Test extends App {
// Some classes in scala-compiler.jar have references to jline / ant classes, which seem to be
// not on the classpath. We just skip over those classes.
// PENDING: for now we also allow missing $anonfun classes: the optimizer may eliminate some closures
- // that are refferred to in EnclosingClass attributes. SI-9136
+ // that are referred to in EnclosingClass attributes. SI-9136
val allowedMissingPackages = Set("jline", "org.apache.tools.ant", "$anonfun")
def ok(t: Throwable) = {
diff --git a/test/files/jvm/interpreter.check b/test/files/jvm/interpreter.check
index 9e875235c7..08372685d6 100644
--- a/test/files/jvm/interpreter.check
+++ b/test/files/jvm/interpreter.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> // basics
diff --git a/test/files/jvm/throws-annot-from-java.check b/test/files/jvm/throws-annot-from-java.check
index c541b26fcc..ace264a4f5 100644
--- a/test/files/jvm/throws-annot-from-java.check
+++ b/test/files/jvm/throws-annot-from-java.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
diff --git a/test/files/jvm/xml05.check b/test/files/jvm/xml05.check
index cad907525d..d456c5e1e4 100644
--- a/test/files/jvm/xml05.check
+++ b/test/files/jvm/xml05.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> <city name="San Jos&eacute;"/>
res0: scala.xml.Elem = <city name="San Jos&eacute;"/>
diff --git a/test/files/neg/macro-invalidshape.check b/test/files/neg/macro-invalidshape.check
index aa694df6d6..5093b87598 100644
--- a/test/files/neg/macro-invalidshape.check
+++ b/test/files/neg/macro-invalidshape.check
@@ -8,8 +8,9 @@ macro [<static object>].<method name>[[<type args>]] or
macro [<macro bundle>].<method name>[[<type args>]]
def foo2(x: Any) = macro Impls.foo(null)(null)
^
-Macros_Test_2.scala:4: error: missing arguments for method foo in object Impls;
-follow this method with `_' if you want to treat it as a partially applied function
+Macros_Test_2.scala:4: error: missing argument list for method foo in object Impls
+Unapplied methods are only converted to functions when a function type is expected.
+You can make this conversion explicit by writing `foo _` or `foo(_)(_)` instead of `foo`.
def foo3(x: Any) = macro {2; Impls.foo}
^
Macros_Test_2.scala:7: error: macro implementation reference has wrong shape. required:
diff --git a/test/files/neg/missing-arg-list.check b/test/files/neg/missing-arg-list.check
new file mode 100644
index 0000000000..5a011c36f2
--- /dev/null
+++ b/test/files/neg/missing-arg-list.check
@@ -0,0 +1,21 @@
+missing-arg-list.scala:9: error: missing argument list for method id in trait T
+Unapplied methods are only converted to functions when a function type is expected.
+You can make this conversion explicit by writing `id _` or `id(_)` instead of `id`.
+ val w = id
+ ^
+missing-arg-list.scala:10: error: missing argument list for method f in trait T
+Unapplied methods are only converted to functions when a function type is expected.
+You can make this conversion explicit by writing `f _` or `f(_)(_)` instead of `f`.
+ val x = f
+ ^
+missing-arg-list.scala:11: error: missing argument list for method g in trait T
+Unapplied methods are only converted to functions when a function type is expected.
+You can make this conversion explicit by writing `g _` or `g(_,_,_)` instead of `g`.
+ val y = g
+ ^
+missing-arg-list.scala:12: error: missing argument list for method h in trait T
+Unapplied methods are only converted to functions when a function type is expected.
+You can make this conversion explicit by writing `h _` or `h(_,_,_)(_)` instead of `h`.
+ val z = h
+ ^
+four errors found
diff --git a/test/files/neg/missing-arg-list.scala b/test/files/neg/missing-arg-list.scala
new file mode 100644
index 0000000000..c422dd32fe
--- /dev/null
+++ b/test/files/neg/missing-arg-list.scala
@@ -0,0 +1,13 @@
+
+trait T {
+
+ def id(i: Int) = i
+ def f(i: Int)(j: Int) = i+j
+ def g(i: Int, j: Int, k: Int) = i+j+k
+ def h(i: Int, j: Int, k: Int)(implicit s: String) = s*(i+j+k)
+
+ val w = id
+ val x = f
+ val y = g
+ val z = h
+}
diff --git a/test/files/neg/t6895.check b/test/files/neg/t6895.check
new file mode 100644
index 0000000000..df01031fff
--- /dev/null
+++ b/test/files/neg/t6895.check
@@ -0,0 +1,6 @@
+t6895.scala:19: error: polymorphic expression cannot be instantiated to expected type;
+ found : [F3[F3_P]]Foo[F3]
+ required: Foo[[X3]Bar[[X1]String]]
+ val nok: Foo[({type L[X3] = Bar[M]})#L] = barFoo /* Type inference can't unify F with L */
+ ^
+one error found
diff --git a/test/files/neg/t6895.scala b/test/files/neg/t6895.scala
new file mode 100644
index 0000000000..5fb20d8c61
--- /dev/null
+++ b/test/files/neg/t6895.scala
@@ -0,0 +1,26 @@
+trait Foo[F1[F1_P]]
+trait Bar[F2[F2_P]]
+
+class Test {
+ def barFoo[F3[F3_P]]: Foo[F3] = ???
+
+ // Now we can define a couple of type aliases:
+ type M[X1] = String
+ type N[X2] = Bar[M]
+
+ // val ok1: Foo[N] = barFoo
+ // Foo[?F3] <:< Foo[Test.this.N]
+ // [X2]Test.this.N[X2] <:< [F3_P]?F3[F3_P]
+ // Test.this.N[X2] <:< ?F3[X2]
+ // true, ?F3=N
+
+ // val ok2: Foo[({type L[X] = Bar[M]})#L] = barFoo[N]
+
+ val nok: Foo[({type L[X3] = Bar[M]})#L] = barFoo /* Type inference can't unify F with L */
+ // Foo[?F3] <:< Foo[[X3]Bar[[X1]String]]
+ // [X3]Bar[[X1]String] <:< ?F3
+ // [X3]Bar[[X1]String] <:< [F3_P]?F3[F3_P]
+ // Bar[[X1]String] <:< ?F3[X3]
+ // X3 <:< [X1]String
+ // false
+}
diff --git a/test/files/neg/t6895b.check b/test/files/neg/t6895b.check
new file mode 100644
index 0000000000..565925127b
--- /dev/null
+++ b/test/files/neg/t6895b.check
@@ -0,0 +1,9 @@
+t6895b.scala:20: error: could not find implicit value for parameter e: Foo[[X]Bar[[X]Or[String,X],X]]
+ implicitly[Foo[({type L[X] = Bar[StringOr, X]})#L]]
+ ^
+t6895b.scala:23: error: polymorphic expression cannot be instantiated to expected type;
+ found : [F[_]]Foo[[X(in type L)]Bar[F,X(in type L)]]
+ required: Foo[[X(in type L)]Bar[[X]Or[String,X],X(in type L)]]
+ barFoo(null) : Foo[({type L[X] = Bar[StringOr, X]})#L]
+ ^
+two errors found
diff --git a/test/files/neg/t6895b.scala b/test/files/neg/t6895b.scala
new file mode 100644
index 0000000000..c465065011
--- /dev/null
+++ b/test/files/neg/t6895b.scala
@@ -0,0 +1,39 @@
+trait Foo[F[_]]
+trait Bar[F[_], A]
+
+trait Or[A, B]
+
+class Test {
+ implicit def orFoo[A]: Foo[({type L[X] = Or[A, X]})#L] = ???
+ implicit def barFoo[F[_]](implicit f: Foo[F]): Foo[({type L[X] = Bar[F, X]})#L] = ???
+
+ // Now we can define a couple of type aliases:
+ type StringOr[X] = Or[String, X]
+ type BarStringOr[X] = Bar[StringOr, X]
+
+ // ok
+ implicitly[Foo[BarStringOr]]
+ barFoo[StringOr](null) : Foo[BarStringOr]
+ barFoo(null) : Foo[BarStringOr]
+
+ // nok
+ implicitly[Foo[({type L[X] = Bar[StringOr, X]})#L]]
+ // Let's write the application explicitly, and then
+ // compile with just this line enabled and -explaintypes.
+ barFoo(null) : Foo[({type L[X] = Bar[StringOr, X]})#L]
+
+ // Foo[[X]Bar[F,X]] <: Foo[[X]Bar[[X]Or[String,X],X]]?
+ // Bar[[X]Or[String,X],X] <: Bar[F,X]?
+ // F[_] <: Or[String,_]?
+ // false
+ // false
+ // false
+
+ // Note that the type annotation above is typechecked as
+ // Foo[[X]Bar[[X]Or[String,X],X]], ie the type alias `L`
+ // is eta expanded.
+ //
+ // This is done so that it does not escape its defining scope.
+ // However, one this is done, higher kinded inference
+ // no longer is able to unify F with `StringOr` (SI-2712)
+}
diff --git a/test/files/neg/t836.scala b/test/files/neg/t836.scala
index 3633b816c6..4b86d04013 100644
--- a/test/files/neg/t836.scala
+++ b/test/files/neg/t836.scala
@@ -12,5 +12,5 @@ abstract class A {
class B extends A {
type MyObj = ObjImpl
val myString: S = "hello"
- val realString: String = myString // error: type missmatch
+ val realString: String = myString // error: type mismatch
}
diff --git a/test/files/neg/t8675b.scala b/test/files/neg/t8675b.scala
index 2c5015b1d0..bffed2141c 100644
--- a/test/files/neg/t8675b.scala
+++ b/test/files/neg/t8675b.scala
@@ -13,7 +13,7 @@ object Test {
// in the backend.
//
// This error is itself a regression (or at least a change) in 2.11.0-M7,
- // specifically in SI-7944. The type paramaters to the implicit view
+ // specifically in SI-7944. The type parameters to the implicit view
// `EngineTools1` are undetermined, and are now treated as type variables
// in the expected type of the closure argument to `withFilter`.
for (path: List[Any] <- (null : Engine1).asRequirement.pathsIncludingSelf.toList) {
diff --git a/test/files/neg/t8777.check b/test/files/neg/t8777.check
new file mode 100644
index 0000000000..cd05f1ec11
--- /dev/null
+++ b/test/files/neg/t8777.check
@@ -0,0 +1,6 @@
+t8777.scala:3: error: type mismatch;
+ found : Foo.this.TreePrinter(in trait Printers)
+ required: Foo.this.TreePrinter(in trait Printers)
+ super.newCodePrinter(out, tree, printRootPkg)
+ ^
+one error found
diff --git a/test/files/neg/t8777.scala b/test/files/neg/t8777.scala
new file mode 100644
index 0000000000..5b7d123202
--- /dev/null
+++ b/test/files/neg/t8777.scala
@@ -0,0 +1,4 @@
+trait Foo extends scala.tools.nsc.Global {
+ override def newCodePrinter(out: java.io.PrintWriter, tree: Tree, printRootPkg: Boolean): TreePrinter =
+ super.newCodePrinter(out, tree, printRootPkg)
+}
diff --git a/test/files/neg/t8892.check b/test/files/neg/t8892.check
new file mode 100644
index 0000000000..5930be58c5
--- /dev/null
+++ b/test/files/neg/t8892.check
@@ -0,0 +1,7 @@
+t8892.scala:2: error: type mismatch;
+ found : B
+ required: C.this.B
+ (which expands to) String
+class C[B](x: B) extends A { def f: B = x }
+ ^
+one error found
diff --git a/test/files/neg/t8892.scala b/test/files/neg/t8892.scala
new file mode 100644
index 0000000000..f857e6f115
--- /dev/null
+++ b/test/files/neg/t8892.scala
@@ -0,0 +1,2 @@
+trait A { type B = String }
+class C[B](x: B) extends A { def f: B = x }
diff --git a/test/files/neg/warn-unused-privates.scala b/test/files/neg/warn-unused-privates.scala
index 2faa07e759..2eda280d40 100644
--- a/test/files/neg/warn-unused-privates.scala
+++ b/test/files/neg/warn-unused-privates.scala
@@ -21,7 +21,7 @@ class B3(msg0: String) extends A("msg")
/*** Early defs warnings disabled primarily due to SI-6595.
* The test case is here to assure we aren't issuing false positives;
- * the ones labeled "warn" don't warn.
+ * the ones labelled "warn" don't warn.
***/
class Boppy extends {
private val hmm: String = "abc" // no warn, used in early defs
diff --git a/test/files/pos/t6601/UsePrivateValueClass_2.scala b/test/files/pos/t6601/UsePrivateValueClass_2.scala
index 461b8397b2..3b2b3dcc21 100644
--- a/test/files/pos/t6601/UsePrivateValueClass_2.scala
+++ b/test/files/pos/t6601/UsePrivateValueClass_2.scala
@@ -1,5 +1,5 @@
object Test {
- // After the first attempt to make seprately compiled value
+ // After the first attempt to make separately compiled value
// classes respect the privacy of constructors, we got:
//
// exception when typing v.a().==(v.a())/class scala.reflect.internal.Trees$Apply
diff --git a/test/files/pos/t8111.scala b/test/files/pos/t8111.scala
index 0d63a16ba4..09463ce697 100644
--- a/test/files/pos/t8111.scala
+++ b/test/files/pos/t8111.scala
@@ -7,10 +7,10 @@ trait T {
foo((u: Unit) => ma)
foo(0, (u: Any) => ma) apply ()
- // crash due to side effects on the onwer of the symbol in the
+ // crash due to side effects on the owner of the symbol in the
// qualifier or arguments of the application during an abandoned
- // names/defaults transform. The code type checkes because of
- // autp-tupling which promotes and empty parmater list to `(): Unit`
+ // names/defaults transform. The code type checks because of
+ // auto-tupling which promotes an empty parameter list to `(): Unit`
foo((u: Any) => ma)()
{{(u: Any) => ma}; this}.foo(0)()
diff --git a/test/files/pos/t8954/t2.scala b/test/files/pos/t8954/t2.scala
index 4def127832..c178486bc9 100644
--- a/test/files/pos/t8954/t2.scala
+++ b/test/files/pos/t8954/t2.scala
@@ -19,7 +19,7 @@ class C {
}
// 2.1 overriding with a deprecated def should be fine
-// and also shoudln't trigger the "deprecation is useless"
+// and also should not trigger the "deprecation is useless"
// warning
class D extends C {
@deprecated("","") override def foo(): Unit = ???
diff --git a/test/files/presentation/t8941b/IdempotencyTest.scala b/test/files/presentation/t8941b/IdempotencyTest.scala
index af01b36898..ffbbc0d03b 100644
--- a/test/files/presentation/t8941b/IdempotencyTest.scala
+++ b/test/files/presentation/t8941b/IdempotencyTest.scala
@@ -6,9 +6,9 @@ import reporters.{Reporter => CompilerReporter}
import scala.tools.nsc.interactive.InteractiveReporter
import scala.reflect.internal.util.SourceFile
-/** Determistically interrupts typechecking of `code` when a defintion named
- * `MagicInterruptionMarker` is typechecked, and then performs a targetted
- * typecheck of the tree at the specal comment marker marker
+/** Deterministically interrupts typechecking of `code` when a definition named
+ * `MagicInterruptionMarker` is typechecked, and then performs a targeted
+ * typecheck of the tree at the special comment marker marker
*/
abstract class IdempotencyTest { self =>
private val settings = new Settings
diff --git a/test/files/run/ReplacementMatching.scala b/test/files/run/ReplacementMatching.scala
index 05040d98a3..81034aa510 100644
--- a/test/files/run/ReplacementMatching.scala
+++ b/test/files/run/ReplacementMatching.scala
@@ -32,12 +32,12 @@ object Test {
def groupsMatching {
val Date = """(\d+)/(\d+)/(\d+)""".r
- for (Regex.Groups(a, b, c) <- Date findFirstMatchIn "1/1/2001 marks the start of the millenium. 31/12/2000 doesn't.") {
+ for (Regex.Groups(a, b, c) <- Date findFirstMatchIn "1/1/2001 marks the start of the millennium. 31/12/2000 doesn't.") {
assert(a == "1")
assert(b == "1")
assert(c == "2001")
}
- for (Regex.Groups(a, b, c) <- (Date findAllIn "1/1/2001 marks the start of the millenium. 31/12/2000 doesn't.").matchData) {
+ for (Regex.Groups(a, b, c) <- (Date findAllIn "1/1/2001 marks the start of the millennium. 31/12/2000 doesn't.").matchData) {
assert(a == "1" || a == "31")
assert(b == "1" || b == "12")
assert(c == "2001" || c == "2000")
diff --git a/test/files/run/class-symbol-contravariant.check b/test/files/run/class-symbol-contravariant.check
index cbb90b52c2..1d95273b50 100644
--- a/test/files/run/class-symbol-contravariant.check
+++ b/test/files/run/class-symbol-contravariant.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
diff --git a/test/files/run/classfile-format-51.scala b/test/files/run/classfile-format-51.scala
index da322bb5d9..a62bcb147d 100644
--- a/test/files/run/classfile-format-51.scala
+++ b/test/files/run/classfile-format-51.scala
@@ -13,7 +13,7 @@ import Opcodes._
//
// By its nature the test can only work on JDK 7+ because under JDK 6 some of the
// classes referred to by DynamicInvoker won't be available and DynamicInvoker won't
-// verify. So the test includes a version check that short-circuites the whole test
+// verify. So the test includes a version check that short-circuits the whole test
// on JDK 6
object Test extends DirectTest {
override def extraSettings: String = "-optimise -usejavacp -d " + testOutput.path + " -cp " + testOutput.path
diff --git a/test/files/run/complicatedmatch.scala b/test/files/run/complicatedmatch.scala
index 681029aa13..1676a4115a 100644
--- a/test/files/run/complicatedmatch.scala
+++ b/test/files/run/complicatedmatch.scala
@@ -7,7 +7,7 @@ object Even{
}
object Test extends App{
- val LongWord = "supercalifragilisticexpialadocious";
+ val LongWord = "supercalifragilisticexpialidocious";
def foo(x : Int, y : String) : Int = (x, y) match {
case (Even(i), "bar") => 1
diff --git a/test/files/run/constant-type.check b/test/files/run/constant-type.check
index a7ba5a46c2..b92f1481a3 100644
--- a/test/files/run/constant-type.check
+++ b/test/files/run/constant-type.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
diff --git a/test/files/run/constrained-types.check b/test/files/run/constrained-types.check
index 6dbf8088c9..670d6f49aa 100644
--- a/test/files/run/constrained-types.check
+++ b/test/files/run/constrained-types.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> class Annot(obj: Any) extends annotation.Annotation with annotation.TypeConstraint
defined class Annot
diff --git a/test/files/run/finally.check b/test/files/run/finally.check
index 901a797426..b0f2293d11 100644
--- a/test/files/run/finally.check
+++ b/test/files/run/finally.check
@@ -29,7 +29,7 @@ body
in finally
java.lang.Exception
----------------------------------------
-Running nestedFinalies
+Running nestedFinallyBlocks
in finally 1
in finally 2
----------------------------------------
diff --git a/test/files/run/finally.scala b/test/files/run/finally.scala
index b66354ca03..467c9e5868 100644
--- a/test/files/run/finally.scala
+++ b/test/files/run/finally.scala
@@ -94,7 +94,7 @@ object Test extends App {
}
// nested finally blocks with return value
- def nestedFinalies: Int =
+ def nestedFinallyBlocks: Int =
try {
try {
return 10
@@ -123,5 +123,5 @@ object Test extends App {
test(throwBody, "throwBody")
test(retFinally, "retFinally")
test(throwFinally, "throwFinally")
- test(nestedFinalies, "nestedFinalies")
+ test(nestedFinallyBlocks, "nestedFinallyBlocks")
}
diff --git a/test/files/run/kind-repl-command.check b/test/files/run/kind-repl-command.check
index 1853213555..e050fb4bc1 100644
--- a/test/files/run/kind-repl-command.check
+++ b/test/files/run/kind-repl-command.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :kind scala.Option
scala.Option's kind is F[+A]
diff --git a/test/files/run/lub-visibility.check b/test/files/run/lub-visibility.check
index 135cb3cb76..61dca979a1 100644
--- a/test/files/run/lub-visibility.check
+++ b/test/files/run/lub-visibility.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> // should infer List[scala.collection.immutable.Seq[Nothing]]
diff --git a/test/files/run/macro-bundle-repl.check b/test/files/run/macro-bundle-repl.check
index 75c5c2adda..ce5c980f6e 100644
--- a/test/files/run/macro-bundle-repl.check
+++ b/test/files/run/macro-bundle-repl.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.language.experimental.macros
import scala.language.experimental.macros
diff --git a/test/files/run/macro-repl-basic.check b/test/files/run/macro-repl-basic.check
index fab03d1558..7e1cb61583 100644
--- a/test/files/run/macro-repl-basic.check
+++ b/test/files/run/macro-repl-basic.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import language.experimental.macros
import language.experimental.macros
diff --git a/test/files/run/macro-repl-dontexpand.check b/test/files/run/macro-repl-dontexpand.check
index 6ecc9245fa..a307ffb26e 100644
--- a/test/files/run/macro-repl-dontexpand.check
+++ b/test/files/run/macro-repl-dontexpand.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> def bar1(c: scala.reflect.macros.blackbox.Context) = ???
bar1: (c: scala.reflect.macros.blackbox.Context)Nothing
diff --git a/test/files/run/macro-system-properties.check b/test/files/run/macro-system-properties.check
index e2e2bd32b9..e20a5bbdfb 100644
--- a/test/files/run/macro-system-properties.check
+++ b/test/files/run/macro-system-properties.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.language.experimental._, scala.reflect.macros.blackbox.Context
import scala.language.experimental._
diff --git a/test/files/run/reflection-equality.check b/test/files/run/reflection-equality.check
index d60d861a90..09a0858630 100644
--- a/test/files/run/reflection-equality.check
+++ b/test/files/run/reflection-equality.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> class X {
def methodIntIntInt(x: Int, y: Int) = x+y
diff --git a/test/files/run/reflection-magicsymbols-repl.check b/test/files/run/reflection-magicsymbols-repl.check
index ca8857ada4..dd26c08349 100644
--- a/test/files/run/reflection-magicsymbols-repl.check
+++ b/test/files/run/reflection-magicsymbols-repl.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
diff --git a/test/files/run/reflection-repl-classes.check b/test/files/run/reflection-repl-classes.check
index 5ebf993a87..df889b9da6 100644
--- a/test/files/run/reflection-repl-classes.check
+++ b/test/files/run/reflection-repl-classes.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> class A
defined class A
diff --git a/test/files/run/reflection-repl-elementary.check b/test/files/run/reflection-repl-elementary.check
index e948c9fd61..2a7f5d90fe 100644
--- a/test/files/run/reflection-repl-elementary.check
+++ b/test/files/run/reflection-repl-elementary.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> scala.reflect.runtime.universe.typeOf[List[Nothing]]
res0: reflect.runtime.universe.Type = scala.List[Nothing]
diff --git a/test/files/run/reify-repl-fail-gracefully.check b/test/files/run/reify-repl-fail-gracefully.check
index eac4d25869..025d377a43 100644
--- a/test/files/run/reify-repl-fail-gracefully.check
+++ b/test/files/run/reify-repl-fail-gracefully.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import language.experimental.macros
import language.experimental.macros
diff --git a/test/files/run/reify_newimpl_22.check b/test/files/run/reify_newimpl_22.check
index 24334df92c..e69dc60199 100644
--- a/test/files/run/reify_newimpl_22.check
+++ b/test/files/run/reify_newimpl_22.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
diff --git a/test/files/run/reify_newimpl_23.check b/test/files/run/reify_newimpl_23.check
index f8379958db..1356d509d3 100644
--- a/test/files/run/reify_newimpl_23.check
+++ b/test/files/run/reify_newimpl_23.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
diff --git a/test/files/run/reify_newimpl_25.check b/test/files/run/reify_newimpl_25.check
index f9a5d7b578..e512cfc52e 100644
--- a/test/files/run/reify_newimpl_25.check
+++ b/test/files/run/reify_newimpl_25.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> {
import scala.reflect.runtime.universe._
diff --git a/test/files/run/reify_newimpl_26.check b/test/files/run/reify_newimpl_26.check
index bd77d3d707..b203389db1 100644
--- a/test/files/run/reify_newimpl_26.check
+++ b/test/files/run/reify_newimpl_26.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> def foo[T]{
import scala.reflect.runtime.universe._
diff --git a/test/files/run/reify_newimpl_35.check b/test/files/run/reify_newimpl_35.check
index bd9b3a2fb1..4f9b43dbbf 100644
--- a/test/files/run/reify_newimpl_35.check
+++ b/test/files/run/reify_newimpl_35.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
diff --git a/test/files/run/repl-assign.check b/test/files/run/repl-assign.check
index faa8a93244..a9e0a2204a 100644
--- a/test/files/run/repl-assign.check
+++ b/test/files/run/repl-assign.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> var x = 10
x: Int = 10
diff --git a/test/files/run/repl-bare-expr.check b/test/files/run/repl-bare-expr.check
index 38ad7e818d..f0c488455f 100644
--- a/test/files/run/repl-bare-expr.check
+++ b/test/files/run/repl-bare-expr.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> 2 ; 3
<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses
diff --git a/test/files/run/repl-colon-type.check b/test/files/run/repl-colon-type.check
index fa33af3beb..21fbe34d96 100644
--- a/test/files/run/repl-colon-type.check
+++ b/test/files/run/repl-colon-type.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :type List[1, 2, 3]
<console>:1: error: identifier expected but integer literal found.
diff --git a/test/files/run/repl-empty-package.check b/test/files/run/repl-empty-package.check
index d3b75f685e..69488ecdcf 100644
--- a/test/files/run/repl-empty-package.check
+++ b/test/files/run/repl-empty-package.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> println(Bippy.bippy)
bippy!
diff --git a/test/files/run/repl-out-dir.check b/test/files/run/repl-out-dir.check
index c354492898..6fd85f5bba 100644
--- a/test/files/run/repl-out-dir.check
+++ b/test/files/run/repl-out-dir.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> case class Bippy(x: Int)
defined class Bippy
diff --git a/test/files/run/repl-parens.check b/test/files/run/repl-parens.check
index 756a063b68..35853f10da 100644
--- a/test/files/run/repl-parens.check
+++ b/test/files/run/repl-parens.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> (2)
res0: Int = 2
diff --git a/test/files/run/repl-paste-2.check b/test/files/run/repl-paste-2.check
index bc80615107..5b6a84144d 100644
--- a/test/files/run/repl-paste-2.check
+++ b/test/files/run/repl-paste-2.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> scala> 999l
diff --git a/test/files/run/repl-paste-3.check b/test/files/run/repl-paste-3.check
index 23e402852f..603fcfa174 100644
--- a/test/files/run/repl-paste-3.check
+++ b/test/files/run/repl-paste-3.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> println(3)
3
diff --git a/test/files/run/repl-paste-4.scala b/test/files/run/repl-paste-4.scala
index cb0a6aa768..90f0c1802b 100644
--- a/test/files/run/repl-paste-4.scala
+++ b/test/files/run/repl-paste-4.scala
@@ -3,9 +3,7 @@ import scala.tools.partest.SessionTest
object Test extends SessionTest {
def session =
-s"""|Type in expressions to have them evaluated.
- |Type :help for more information.
- |
+s"""|
|scala> :paste $pastie
|Pasting file $pastie...
|defined class Foo
diff --git a/test/files/run/repl-paste-raw.scala b/test/files/run/repl-paste-raw.scala
index 3b41254e96..9bd5e8e63e 100644
--- a/test/files/run/repl-paste-raw.scala
+++ b/test/files/run/repl-paste-raw.scala
@@ -3,9 +3,7 @@ import scala.tools.partest.SessionTest
object Test extends SessionTest {
def session =
-s"""|Type in expressions to have them evaluated.
- |Type :help for more information.
- |
+s"""|
|scala> :paste -raw $pastie
|Pasting file $pastie...
|
diff --git a/test/files/run/repl-paste.check b/test/files/run/repl-paste.check
index 171447214f..3bcfd33c94 100644
--- a/test/files/run/repl-paste.check
+++ b/test/files/run/repl-paste.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :paste
// Entering paste mode (ctrl-D to finish)
diff --git a/test/files/run/repl-power.check b/test/files/run/repl-power.check
index e2318c93f2..2a7b7783d9 100644
--- a/test/files/run/repl-power.check
+++ b/test/files/run/repl-power.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
diff --git a/test/files/run/repl-reset.check b/test/files/run/repl-reset.check
index a2d88fd445..b0683fff79 100644
--- a/test/files/run/repl-reset.check
+++ b/test/files/run/repl-reset.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> val x1 = 1
x1: Int = 1
diff --git a/test/files/run/repl-save.scala b/test/files/run/repl-save.scala
index c98e6aebc3..8a3a887a8c 100644
--- a/test/files/run/repl-save.scala
+++ b/test/files/run/repl-save.scala
@@ -2,9 +2,7 @@ import scala.tools.partest.SessionTest
object Test extends SessionTest {
def session =
-s"""|Type in expressions to have them evaluated.
- |Type :help for more information.
- |
+s"""|
|scala> val i = 7
|i: Int = 7
|
diff --git a/test/files/run/repl-term-macros.check b/test/files/run/repl-term-macros.check
index 2cd0b93cd0..b020611167 100644
--- a/test/files/run/repl-term-macros.check
+++ b/test/files/run/repl-term-macros.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.macros.blackbox.Context
import scala.reflect.macros.blackbox.Context
diff --git a/test/files/run/repl-transcript.check b/test/files/run/repl-transcript.check
index b0f106387b..762a96b9cc 100644
--- a/test/files/run/repl-transcript.check
+++ b/test/files/run/repl-transcript.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> scala> class Bippity
diff --git a/test/files/run/repl-trim-stack-trace.scala b/test/files/run/repl-trim-stack-trace.scala
index b8c1668691..ea91e32239 100644
--- a/test/files/run/repl-trim-stack-trace.scala
+++ b/test/files/run/repl-trim-stack-trace.scala
@@ -5,8 +5,7 @@ import scala.tools.partest.{ SessionTest, Welcoming }
object Test extends SessionTest with Welcoming {
def session =
"""Welcome to Scala
-Type in expressions to have them evaluated.
-Type :help for more information.
+Type in expressions for evaluation. Or try :help.
scala> def f = throw new Exception("Uh-oh")
f: Nothing
@@ -37,7 +36,6 @@ scala> :quit"""
// normalize the "elided" lines because the frame count depends on test context
lazy val elided = """(\s+\.{3} )\d+( elided)""".r
override def normalize(line: String) = line match {
- case welcome(w) => w
case elided(ellipsis, suffix) => s"$ellipsis???$suffix"
case s => s
}
diff --git a/test/files/run/repl-type-verbose.check b/test/files/run/repl-type-verbose.check
index 6f6b47b86d..10a9c1217c 100644
--- a/test/files/run/repl-type-verbose.check
+++ b/test/files/run/repl-type-verbose.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> // verbose!
diff --git a/test/files/run/sbt-icode-interface.scala b/test/files/run/sbt-icode-interface.scala
new file mode 100644
index 0000000000..84d38cc65a
--- /dev/null
+++ b/test/files/run/sbt-icode-interface.scala
@@ -0,0 +1,42 @@
+import scala.tools.partest._
+import scala.tools.nsc._
+
+object Test extends DirectTest {
+
+ def code = """
+ class C { class D }
+ object O
+ """.trim
+
+ def show() {
+ for (b <- List("GenASM", "GenBCode")) {
+ val global = newCompiler("-usejavacp", s"-Ybackend:$b")
+ import global._
+ val r = new Run
+ r.compileSources(newSourceFile(code) :: Nil)
+
+ val results = collection.mutable.Buffer[(Boolean, String)]()
+
+ // Nailing down defacto compiler API from SBT's usage
+ // https://github.com/sbt/sbt/blob/adb41611cf73260938274915d8462d924df200c8/compile/interface/src/main/scala/xsbt/Analyzer.scala#L29-L41
+ def isTopLevelModule(sym: Symbol) = sym.isTopLevel && sym.isModule
+ for (unit <- currentRun.units if !unit.isJava) {
+ val sourceFile = unit.source.file.file
+ for (iclass <- unit.icode) {
+ val sym = iclass.symbol
+ def addGenerated(separatorRequired: Boolean) {
+ results += (separatorRequired -> sym.fullName)
+ }
+ if (sym.isModuleClass && !sym.isImplClass) {
+ if (isTopLevelModule(sym) && sym.companionClass == NoSymbol)
+ addGenerated(false)
+ addGenerated(true)
+ } else
+ addGenerated(false)
+ }
+ }
+ val expected = List((false, "C"), (true, "O"), (false, "C$D"))
+ assert(results.toList == expected, b + ": " + results.toList)
+ }
+ }
+}
diff --git a/test/files/run/t1987b/cce_test.scala b/test/files/run/t1987b/cce_test.scala
index 4f9acf0264..e131df7956 100644
--- a/test/files/run/t1987b/cce_test.scala
+++ b/test/files/run/t1987b/cce_test.scala
@@ -1,5 +1,5 @@
package scales.xml
-//import scales.xml._ // using another pacakge and importing doesn't CCE
+//import scales.xml._ // using another package and importing doesn't CCE
object CCE_Test {
def main(args: Array[String]): Unit = {
diff --git a/test/files/run/t3376.check b/test/files/run/t3376.check
index b8fd2843f6..0af54d6a53 100644
--- a/test/files/run/t3376.check
+++ b/test/files/run/t3376.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> class M[@specialized T] { override def toString = "mmm" }
defined class M
diff --git a/test/files/run/t4025.check b/test/files/run/t4025.check
index e8c6851236..ed3f254024 100644
--- a/test/files/run/t4025.check
+++ b/test/files/run/t4025.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> class Color(val red: Int)
defined class Color
diff --git a/test/files/run/t4172.check b/test/files/run/t4172.check
index 315c1c9dbd..3141647dba 100644
--- a/test/files/run/t4172.check
+++ b/test/files/run/t4172.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> val c = { class C { override def toString = "C" }; ((new C, new C { def f = 2 })) }
warning: there was one feature warning; re-run with -feature for details
diff --git a/test/files/run/t4216.check b/test/files/run/t4216.check
index e4610e87d3..3ec394b939 100644
--- a/test/files/run/t4216.check
+++ b/test/files/run/t4216.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.ClassTag
import scala.reflect.ClassTag
diff --git a/test/files/run/t4285.check b/test/files/run/t4285.check
index b952cb8e1b..465aee75f1 100644
--- a/test/files/run/t4285.check
+++ b/test/files/run/t4285.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> val x = Array(1,2,3,4,5,6,7)
x: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7)
diff --git a/test/files/run/t4542.check b/test/files/run/t4542.check
index f7aad3deb2..3ab3eaffd8 100644
--- a/test/files/run/t4542.check
+++ b/test/files/run/t4542.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> @deprecated("foooo", "ReplTest version 1.0-FINAL") class Foo() {
override def toString = "Bippy"
diff --git a/test/files/run/t4594-repl-settings.scala b/test/files/run/t4594-repl-settings.scala
index 1b883983cf..cbd87b5949 100644
--- a/test/files/run/t4594-repl-settings.scala
+++ b/test/files/run/t4594-repl-settings.scala
@@ -4,23 +4,21 @@ import scala.tools.partest.SessionTest
// Detected repl transcript paste: ctrl-D to finish.
object Test extends SessionTest {
def session =
-""" |Type in expressions to have them evaluated.
- |Type :help for more information.
- |
- |scala> @deprecated(message="Please don't do that.", since="Time began.") def depp = "john"
- |depp: String
- |
- |scala> def a = depp
- |warning: there was one deprecation warning; re-run with -deprecation for details
- |a: String
- |
- |scala> :settings -deprecation
- |
- |scala> def b = depp
- |<console>:11: warning: method depp is deprecated: Please don't do that.
- | def b = depp
- | ^
- |b: String
- |
- |scala> :quit"""
+"""|
+ |scala> @deprecated(message="Please don't do that.", since="Time began.") def depp = "john"
+ |depp: String
+ |
+ |scala> def a = depp
+ |warning: there was one deprecation warning; re-run with -deprecation for details
+ |a: String
+ |
+ |scala> :settings -deprecation
+ |
+ |scala> def b = depp
+ |<console>:11: warning: method depp is deprecated: Please don't do that.
+ | def b = depp
+ | ^
+ |b: String
+ |
+ |scala> :quit"""
}
diff --git a/test/files/run/t4671.check b/test/files/run/t4671.check
index 1640dac8e4..b267befee9 100644
--- a/test/files/run/t4671.check
+++ b/test/files/run/t4671.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> object o { val file = sys.props("partest.cwd") + "/t4671.scala" }
defined object o
diff --git a/test/files/run/t4710.check b/test/files/run/t4710.check
index 0dd49dfbd3..5f90c68ed1 100644
--- a/test/files/run/t4710.check
+++ b/test/files/run/t4710.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> def method : String = { implicit def f(s: Symbol) = "" ; 'symbol }
warning: there was one feature warning; re-run with -feature for details
diff --git a/test/files/run/t4950.check b/test/files/run/t4950.check
index 3f3a302b62..8994441163 100644
--- a/test/files/run/t4950.check
+++ b/test/files/run/t4950.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> val 1 = 2
scala.MatchError: 2 (of class java.lang.Integer)
diff --git a/test/files/run/t5072.check b/test/files/run/t5072.check
index ab34e49869..586c0a6004 100644
--- a/test/files/run/t5072.check
+++ b/test/files/run/t5072.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> class C
defined class C
diff --git a/test/files/run/t5256d.check b/test/files/run/t5256d.check
index c2b49989ab..3cdcb577b0 100644
--- a/test/files/run/t5256d.check
+++ b/test/files/run/t5256d.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
diff --git a/test/files/run/t5535.check b/test/files/run/t5535.check
index 84097ccea9..11d298c602 100644
--- a/test/files/run/t5535.check
+++ b/test/files/run/t5535.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> def h()(i: Int) = 1 + i
h: ()(i: Int)Int
diff --git a/test/files/run/t5537.check b/test/files/run/t5537.check
index 98265ccc92..bffa02f334 100644
--- a/test/files/run/t5537.check
+++ b/test/files/run/t5537.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> List[Predef.type]()
res0: List[scala.Predef.type] = List()
diff --git a/test/files/run/t5583.check b/test/files/run/t5583.check
index 32d285cbb3..72ad898e90 100644
--- a/test/files/run/t5583.check
+++ b/test/files/run/t5583.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> var s = 0
s: Int = 0
diff --git a/test/files/run/t5655.check b/test/files/run/t5655.check
index e8375c3e90..857a5ab556 100644
--- a/test/files/run/t5655.check
+++ b/test/files/run/t5655.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> object x { def x={} }
defined object x
diff --git a/test/files/run/t5789.check b/test/files/run/t5789.check
index 193abfaff0..d286922acc 100644
--- a/test/files/run/t5789.check
+++ b/test/files/run/t5789.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> val n = 2
n: Int = 2
diff --git a/test/files/run/t6086-repl.check b/test/files/run/t6086-repl.check
index b904f118e8..f022e841cd 100644
--- a/test/files/run/t6086-repl.check
+++ b/test/files/run/t6086-repl.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> case class X(s: String)
defined class X
diff --git a/test/files/run/t6146b.check b/test/files/run/t6146b.check
index 6998873fb7..0e0c216cd7 100644
--- a/test/files/run/t6146b.check
+++ b/test/files/run/t6146b.check
@@ -2,8 +2,6 @@ t6146b.scala:15: warning: match may not be exhaustive.
It would fail on the following inputs: S2(), S3()
def foo(f: F[Int]) = f match { case X.S1 => }
^
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
diff --git a/test/files/run/t6187.check b/test/files/run/t6187.check
index 9a9e266ec6..28bc7e34b6 100644
--- a/test/files/run/t6187.check
+++ b/test/files/run/t6187.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.language.experimental.macros, scala.reflect.macros.blackbox.Context
import scala.language.experimental.macros
diff --git a/test/files/run/t6273.check b/test/files/run/t6273.check
index 3b682800df..6190ff254e 100644
--- a/test/files/run/t6273.check
+++ b/test/files/run/t6273.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> val y = 55
y: Int = 55
diff --git a/test/files/run/t6320.check b/test/files/run/t6320.check
index af7c865690..08ef7fc211 100644
--- a/test/files/run/t6320.check
+++ b/test/files/run/t6320.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.language.dynamics
import scala.language.dynamics
diff --git a/test/files/run/t6329_repl.check b/test/files/run/t6329_repl.check
index ebb1aace7c..8909c47e79 100644
--- a/test/files/run/t6329_repl.check
+++ b/test/files/run/t6329_repl.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.classTag
import scala.reflect.classTag
diff --git a/test/files/run/t6329_repl_bug.check b/test/files/run/t6329_repl_bug.check
index 84297a629f..4b539f9e58 100644
--- a/test/files/run/t6329_repl_bug.check
+++ b/test/files/run/t6329_repl_bug.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
diff --git a/test/files/run/t6381.check b/test/files/run/t6381.check
index 49c6a784ad..c66eb4c376 100644
--- a/test/files/run/t6381.check
+++ b/test/files/run/t6381.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.language.experimental.macros
import scala.language.experimental.macros
diff --git a/test/files/run/t6434.check b/test/files/run/t6434.check
index 0a75ae2bd5..1f123ee9cd 100644
--- a/test/files/run/t6434.check
+++ b/test/files/run/t6434.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> def f(x: => Int): Int = x
f: (x: => Int)Int
diff --git a/test/files/run/t6439.check b/test/files/run/t6439.check
index c4b7591069..eee2da1b12 100644
--- a/test/files/run/t6439.check
+++ b/test/files/run/t6439.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> class A
defined class A
diff --git a/test/files/run/t6440b.scala b/test/files/run/t6440b.scala
index 974aca2844..7ab9529ccb 100644
--- a/test/files/run/t6440b.scala
+++ b/test/files/run/t6440b.scala
@@ -35,7 +35,7 @@ object Test extends StoreReporterDirectTest {
def app2 = """
package pack3
object Test {
- pack2.V.u.t // we have to fail if T.class is misisng
+ pack2.V.u.t // we have to fail if T.class is missing
}
"""
diff --git a/test/files/run/t6502.scala b/test/files/run/t6502.scala
index d6b15a0189..f4fc39a03d 100644
--- a/test/files/run/t6502.scala
+++ b/test/files/run/t6502.scala
@@ -1,11 +1,14 @@
import scala.tools.nsc.Settings
-import scala.tools.nsc.interpreter.ILoop
+import scala.tools.nsc.interpreter.{ ILoop, replProps }
import scala.tools.nsc.settings.ClassPathRepresentationType
import scala.tools.partest._
object Test extends StoreReporterDirectTest {
def code = ???
+ lazy val headerLength = replProps.welcome.lines.size
+ lazy val promptLength = replProps.prompt.lines.size - 1 // extra newlines
+
def compileCode(code: String, jarFileName: String) = {
val classpath = List(sys.props("partest.lib"), testOutput.path) mkString sys.props("path.separator")
compileString(newCompiler("-cp", classpath, "-d", s"${testOutput.path}/$jarFileName"))(code)
@@ -56,14 +59,21 @@ object Test extends StoreReporterDirectTest {
val jar = "test1.jar"
compileCode(app1, jar)
- val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar", "test.Test.test()")
+ val codeToRun = s"""
+ |:require ${testOutput.path}/$jar
+ |test.Test.test()
+ |""".stripMargin.trim
val output = ILoop.run(codeToRun, settings)
- val lines = output.split("\n")
- assert {
- lines(4).contains("Added") && lines(4).contains("test1.jar")
- }
+ var lines = output.lines.drop(headerLength)
+ lines = lines drop promptLength
+ val added = lines.next
+ assert (
+ added.contains("Added") && added.contains("test1.jar"),
+ s"[${added}] in [${output.lines.mkString("/")}]"
+ )
+ lines = lines drop promptLength
assert {
- lines(lines.length-3).contains("testing...")
+ lines.next.contains("testing...")
}
}
@@ -73,14 +83,21 @@ object Test extends StoreReporterDirectTest {
val jar2 = "test2.jar"
compileCode(app2, jar2)
- val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar1", s":require ${testOutput.path}/$jar2")
+ val codeToRun = s"""
+ |:require ${testOutput.path}/$jar1
+ |:require ${testOutput.path}/$jar2
+ |""".stripMargin.trim
val output = ILoop.run(codeToRun, settings)
- val lines = output.split("\n")
+ var lines = output.lines.drop(headerLength)
+ lines = lines drop promptLength
+ val added = lines.next
assert {
- lines(4).contains("Added") && lines(4).contains("test1.jar")
+ added.contains("Added") && added.contains("test1.jar")
}
+ lines = lines drop promptLength
+ val msg = lines.next
assert {
- lines(lines.length-3).contains("test2.jar") && lines(lines.length-3).contains("existing classpath entries conflict")
+ msg.contains("test2.jar") && msg.contains("existing classpath entries conflict")
}
}
@@ -90,28 +107,42 @@ object Test extends StoreReporterDirectTest {
val jar3 = "test3.jar"
compileCode(app3, jar3)
- val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar1", s":require ${testOutput.path}/$jar3", "test.Test3.test()")
+ val codeToRun = s"""
+ |:require ${testOutput.path}/$jar1
+ |:require ${testOutput.path}/$jar3
+ |test.Test3.test()
+ |""".stripMargin.trim
val output = ILoop.run(codeToRun, settings)
- val lines = output.split("\n")
+ var lines = output.lines.drop(headerLength)
+ lines = lines drop promptLength
+ val added = lines.next
assert {
- lines(4).contains("Added") && lines(4).contains("test1.jar")
+ added.contains("Added") && added.contains("test1.jar")
}
+ lines = lines drop (2 * promptLength + 1)
assert {
- lines(lines.length-3).contains("new object in existing package")
+ lines.next.contains("new object in existing package")
}
}
def test4(): Unit = {
// twice the same jar should be rejected
val jar1 = "test1.jar"
- val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar1", s":require ${testOutput.path}/$jar1")
+ val codeToRun = s"""
+ |:require ${testOutput.path}/$jar1
+ |:require ${testOutput.path}/$jar1
+ |""".stripMargin.trim
val output = ILoop.run(codeToRun, settings)
- val lines = output.split("\n")
+ var lines = output.lines.drop(headerLength)
+ lines = lines drop promptLength
+ val added = lines.next
assert {
- lines(4).contains("Added") && lines(4).contains("test1.jar")
+ added.contains("Added") && added.contains("test1.jar")
}
+ lines = lines drop promptLength
+ val msg = lines.next
assert {
- lines(lines.length-3).contains("test1.jar") && lines(lines.length-3).contains("existing classpath entries conflict")
+ msg.contains("test1.jar") && msg.contains("existing classpath entries conflict")
}
}
@@ -127,7 +158,10 @@ object Test extends StoreReporterDirectTest {
// classloader to parse .class files in order to read their names.
val jar = "test6.jar"
compileCode(app6, jar)
- val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar", "import test6._; new A; new Z")
+ val codeToRun = s"""
+ |:require ${testOutput.path}/$jar
+ |import test6._; new A; new Z
+ |""".stripMargin.trim
val output = ILoop.run(codeToRun, settings)
assert(output.contains("created test6.A"), output)
assert(output.contains("created test6.Z"), output)
@@ -141,6 +175,4 @@ object Test extends StoreReporterDirectTest {
test5()
test6()
}
-
- def toCodeInSeparateLines(lines: String*): String = lines mkString "\n"
}
diff --git a/test/files/run/t6507.check b/test/files/run/t6507.check
index 5da4aa3a24..75cf392304 100644
--- a/test/files/run/t6507.check
+++ b/test/files/run/t6507.check
@@ -1,8 +1,5 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :silent
-Switched off result printing.
scala> class A { override def toString() = { println("!"); "A" } }
@@ -15,7 +12,6 @@ scala> b = new A
scala> new A
scala> :silent
-Switched on result printing.
scala> res0
!
diff --git a/test/files/run/t6549.check b/test/files/run/t6549.check
index be3445927e..00203d5cc7 100644
--- a/test/files/run/t6549.check
+++ b/test/files/run/t6549.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> case class `X"`(var xxx: Any)
defined class X$u0022
diff --git a/test/files/run/t6937.check b/test/files/run/t6937.check
index 5c5d4485b6..b7b2f45385 100644
--- a/test/files/run/t6937.check
+++ b/test/files/run/t6937.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.reflect.runtime.{universe => ru}
import scala.reflect.runtime.{universe=>ru}
diff --git a/test/files/run/t7185.check b/test/files/run/t7185.check
index e4f80a8ff9..6b7fbaf0b1 100644
--- a/test/files/run/t7185.check
+++ b/test/files/run/t7185.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.tools.reflect.ToolBox
import scala.tools.reflect.ToolBox
diff --git a/test/files/run/t7319.check b/test/files/run/t7319.check
index 885136b432..31923e7119 100644
--- a/test/files/run/t7319.check
+++ b/test/files/run/t7319.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> class M[A]
defined class M
diff --git a/test/files/run/t7482a.check b/test/files/run/t7482a.check
index a21ef7b68f..1120bb0271 100644
--- a/test/files/run/t7482a.check
+++ b/test/files/run/t7482a.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> val v: java.util.ArrayList[String] = new java.util.ArrayList[String](5)
v: java.util.ArrayList[String] = []
diff --git a/test/files/run/t7634.check b/test/files/run/t7634.check
index 9c6b8b47dd..879aea67a2 100644
--- a/test/files/run/t7634.check
+++ b/test/files/run/t7634.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> .lines
diff --git a/test/files/run/t7747-repl.check b/test/files/run/t7747-repl.check
index 98e3d3b821..f19c39e7e1 100644
--- a/test/files/run/t7747-repl.check
+++ b/test/files/run/t7747-repl.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> var x = 10
x: Int = 10
diff --git a/test/files/run/t7801.check b/test/files/run/t7801.check
index e0b656b784..4ec89f0de6 100644
--- a/test/files/run/t7801.check
+++ b/test/files/run/t7801.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> val g: scala.reflect.internal.SymbolTable = null; import g.abort
g: scala.reflect.internal.SymbolTable = null
diff --git a/test/files/run/t7805-repl-i.check b/test/files/run/t7805-repl-i.check
index 7f66c06a11..24512c0067 100644
--- a/test/files/run/t7805-repl-i.check
+++ b/test/files/run/t7805-repl-i.check
@@ -2,8 +2,7 @@ Loading t7805-repl-i.script...
import util._
Welcome to Scala
-Type in expressions to have them evaluated.
-Type :help for more information.
+Type in expressions for evaluation. Or try :help.
scala> Console println Try(8)
Success(8)
diff --git a/test/files/run/t8010.scala b/test/files/run/t8010.scala
index 8636bbd12e..c78d45a43b 100644
--- a/test/files/run/t8010.scala
+++ b/test/files/run/t8010.scala
@@ -5,7 +5,7 @@ trait Base {
def bt(n: Int) = n
}
trait Derived extends Base {
- // was: double defintion error
+ // was: double definition error
override def t = 1 + super.t
override def t(n: Int) = 1 + super.t(n)
override def bt = 1 + super.bt
@@ -14,7 +14,7 @@ trait Derived extends Base {
object Test extends App {
val d = new Derived {}
- // not the focus of thie bug, but let's just check the runtime behaviour while we're here.
+ // not the focus of this bug, but let's just check the runtime behaviour while we're here.
assert(d.t == 2)
assert(d.t(1) == 2)
assert(d.bt == 3)
diff --git a/test/files/run/t8843-repl-xlat.scala b/test/files/run/t8843-repl-xlat.scala
index 6426dbe7d4..215dd97061 100644
--- a/test/files/run/t8843-repl-xlat.scala
+++ b/test/files/run/t8843-repl-xlat.scala
@@ -4,9 +4,7 @@ import scala.tools.partest.SessionTest
// Handy hamburger helper for repl resources
object Test extends SessionTest {
def session =
-"""Type in expressions to have them evaluated.
-Type :help for more information.
-
+"""
scala> $intp.isettings.unwrapStrings = false
$intp.isettings.unwrapStrings: Boolean = false
diff --git a/test/files/run/t8893b.scala b/test/files/run/t8893b.scala
index 19120871aa..066425aab6 100644
--- a/test/files/run/t8893b.scala
+++ b/test/files/run/t8893b.scala
@@ -5,7 +5,7 @@ object Test {
def tick(i : Int): Unit =
if (i == 0) ()
else if (i == 42) {
- tick(0) /*not in tail posiiton*/
+ tick(0) /*not in tail position*/
tick(i - 1)
} else tick(i - 1)
diff --git a/test/files/run/t8918-unary-ids.check b/test/files/run/t8918-unary-ids.check
new file mode 100644
index 0000000000..92f02371c7
--- /dev/null
+++ b/test/files/run/t8918-unary-ids.check
@@ -0,0 +1,7 @@
+Expected 41 lines, got 39
+--- expected
++++ actual
+@@ -1,3 +1,1 @@
+-Type in expressions to have them evaluated.
+-Type :help for more information.
+
diff --git a/test/files/run/t9170.scala b/test/files/run/t9170.scala
index 67a58d6803..d6cf516615 100644
--- a/test/files/run/t9170.scala
+++ b/test/files/run/t9170.scala
@@ -6,9 +6,7 @@ object Test extends SessionTest {
override def stripMargins = false
def session =
-"""Type in expressions to have them evaluated.
-Type :help for more information.
-
+"""
scala> object Y { def f[A](a: => A) = 1 ; def f[A](a: => Either[Exception, A]) = 2 }
<console>:10: error: double definition:
def f[A](a: => A): Int at line 10 and
diff --git a/test/files/run/t9174.check b/test/files/run/t9174.check
index 9320a081ff..14d6bc10db 100644
--- a/test/files/run/t9174.check
+++ b/test/files/run/t9174.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> import scala.util.{Success, Failure}
import scala.util.{Success, Failure}
diff --git a/test/files/run/t9206.scala b/test/files/run/t9206.scala
index 2942d0f73e..872c980fe4 100644
--- a/test/files/run/t9206.scala
+++ b/test/files/run/t9206.scala
@@ -5,9 +5,7 @@ object Test extends SessionTest {
//override def prompt = "XXX> "
//Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).
def session =
- s"""|Type in expressions to have them evaluated.
- |Type :help for more information.
- |
+ s"""|
|scala> val i: Int = "foo"
|<console>:10: error: type mismatch;
| found : String("foo")
diff --git a/test/files/run/tpeCache-tyconCache.check b/test/files/run/tpeCache-tyconCache.check
index ff604819e0..ac13d32f91 100644
--- a/test/files/run/tpeCache-tyconCache.check
+++ b/test/files/run/tpeCache-tyconCache.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
diff --git a/test/files/run/xMigration.check b/test/files/run/xMigration.check
index 304132a848..79ce544493 100644
--- a/test/files/run/xMigration.check
+++ b/test/files/run/xMigration.check
@@ -1,5 +1,3 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
scala> Map(1 -> "eis").values // no warn
res0: Iterable[String] = MapLike(eis)
diff --git a/test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala b/test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala
index 7bd37140a7..ab1056dd86 100644
--- a/test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala
+++ b/test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala
@@ -250,8 +250,8 @@ trait ArbitraryTreesAndNames {
genAppliedTypeTree(size - 1), genTypeBoundsTree(size - 1))
/* These are marker types that allow to write tests that
- * depend specificly on Trees that are terms or types.
- * They are transparently tranformed to trees through
+ * depend specifically on Trees that are terms or types.
+ * They are transparently transformed to trees through
* implicit conversions and liftables for quasiquotes.
*/
diff --git a/test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala b/test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala
index fd810674f5..4ab8bb8531 100644
--- a/test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala
+++ b/test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala
@@ -346,7 +346,7 @@ trait MethodConstruction { self: QuasiquoteProperties =>
}
}
- property("can't unquote annotations with arguments specificed twice") = test {
+ property("can't unquote annotations with arguments specified twice") = test {
val a = q"new a(x)"
assertThrows[IllegalArgumentException] {
q"@$a(y) def foo"
@@ -370,7 +370,7 @@ trait PackageConstruction { self: QuasiquoteProperties =>
assertEqAst(q"package $name { }", "package foo.bar { }")
}
- property("splce name into package name") = test{
+ property("splice name into package name") = test{
val name = TermName("bippy")
assertEqAst(q"package $name { }", "package bippy { }")
}
diff --git a/test/files/scalacheck/quasiquotes/ErrorProps.scala b/test/files/scalacheck/quasiquotes/ErrorProps.scala
index 2cba07abf2..0c24149372 100644
--- a/test/files/scalacheck/quasiquotes/ErrorProps.scala
+++ b/test/files/scalacheck/quasiquotes/ErrorProps.scala
@@ -162,7 +162,7 @@ object ErrorProps extends QuasiquoteProperties("errors") {
q"$n"
""")
- property("SI-8211: check unbound placeholder paremeters") = fails(
+ property("SI-8211: check unbound placeholder parameters") = fails(
"unbound placeholder parameter",
"""
q"_"
diff --git a/test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala b/test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala
index 4086f7dd7b..240d3523f1 100644
--- a/test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala
+++ b/test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala
@@ -28,7 +28,7 @@ class DirectCompileTest extends ClearAfterClass {
|}
""".stripMargin)
def s(i: Int, n: Int) = (bytes(i) & 0xff) << n
- assertTrue((s(0, 24) | s(1, 16) | s(2, 8) | s(3, 0)) == 0xcafebabe) // mocha java latte machiatto surpreme dark roasted espresso
+ assertTrue((s(0, 24) | s(1, 16) | s(2, 8) | s(3, 0)) == 0xcafebabe) // mocha java latte macchiato surpreme dark roasted espresso
}
@Test
diff --git a/test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala b/test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala
index a37ba31b31..5dee488285 100644
--- a/test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala
+++ b/test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala
@@ -42,7 +42,7 @@ class FlatClassPathResolverTest {
// In Java TemporaryFolder in JUnit is managed automatically using @Rule.
// It would work also in Scala after adding and extending a class like
// TestWithTempFolder.java containing it. But in this case it doesn't work when running tests
- // from the command line - java class is not compiled due to some, misterious reasons.
+ // from the command line - java class is not compiled due to some, mysterious reasons.
// That's why such dirs are here created and deleted manually.
tempDir.create()
tempDir.newFile("TestSourceInRootPackage.scala")