diff options
author | Seth Tisue <seth@tisue.net> | 2016-02-25 08:33:44 -0500 |
---|---|---|
committer | Seth Tisue <seth@tisue.net> | 2016-02-25 08:33:44 -0500 |
commit | e891bb60f721465bfe497b16f5ef440de0a7d5e5 (patch) | |
tree | edbe21ff3fd89156701c8ecedf5d900915bfb759 | |
parent | d375334c26c625da345c5e77bca2975f21b8bd10 (diff) | |
parent | 964630ec1f4cf94f4d09eff394f959e733e3fcf7 (diff) | |
download | scala-e891bb60f721465bfe497b16f5ef440de0a7d5e5.tar.gz scala-e891bb60f721465bfe497b16f5ef440de0a7d5e5.tar.bz2 scala-e891bb60f721465bfe497b16f5ef440de0a7d5e5.zip |
Merge pull request #4996 from retronym/merge/2.11.x-to-2.12.x-20160225
Merge 2.11.x to 2.12.x [ci: last-only]
48 files changed, 120 insertions, 96 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 462b5404b2..18f07376bd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,11 +10,11 @@ We are super happy about this, and are eager to make your experience contributin This is why we're collecting these notes on how to contribute, and we hope you'll share your experience to improve the process for the next contributor! (Feel free to send a PR for this note, send your thoughts to scala-internals, or tweet about it to @adriaanm.) -By the way, the team at Typesafe is: @adriaanm, @lrytz, @retronym, and @SethTisue. +By the way, the team at Lightbend (formerly Typesafe) is: @adriaanm, @lrytz, @retronym, @SethTisue, and @szeiger. ## What kind of PR are you submitting? -Regardless of the nature of your Pull Request, we have to ask you to digitally sign the [Scala CLA](http://www.typesafe.com/contribute/cla/scala), to protect the OSS nature of the code base. +Regardless of the nature of your Pull Request, we have to ask you to digitally sign the [Scala CLA](http://www.lightbend.com/contribute/cla/scala), to protect the OSS nature of the code base. You don't need to submit separate PRs for 2.11.x, 2.12.x, and 2.13.x. Any changes accepted on one of these branches will, in time, be merged into the later branches. @@ -3,7 +3,7 @@ This is the official repository for the [Scala Programming Language](http://www. # How to contribute -To contribute to the Scala Standard Library, Scala Compiler and Scala Language Specification, please send us a [pull request](https://help.github.com/articles/using-pull-requests/#fork--pull) from your fork of this repository! We do have to ask you to sign the [Scala CLA](http://www.typesafe.com/contribute/cla/scala) before we can merge any of your work into our code base, to protect its open source nature. +To contribute to the Scala Standard Library, Scala Compiler and Scala Language Specification, please send us a [pull request](https://help.github.com/articles/using-pull-requests/#fork--pull) from your fork of this repository! We do have to ask you to sign the [Scala CLA](http://www.lightbend.com/contribute/cla/scala) before we can merge any of your work into our code base, to protect its open source nature. For more information on building and developing the core of Scala, read on! @@ -133,8 +133,8 @@ Here, `<milestone>` is the milestone targeted by the PR (e.g., 2.11.6), and `<sh ### Eclipse See `src/eclipse/README.md`. -### IntelliJ 14 -See `src/intellij/README.md`. +### IntelliJ 15 +See [src/intellij/README.md](src/intellij/README.md). ## Building with sbt (EXPERIMENTAL) @@ -181,8 +181,8 @@ lazy val commonSettings = clearSourceAndResourceDirectories ++ publishSettings + <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> apiURL.value match { diff --git a/doc/LICENSE.md b/doc/LICENSE.md index dc557368cf..ee61d11b8b 100644 --- a/doc/LICENSE.md +++ b/doc/LICENSE.md @@ -4,7 +4,7 @@ Scala is licensed under the [BSD 3-Clause License](http://opensource.org/license Copyright (c) 2002-2016 EPFL -Copyright (c) 2011-2016 Typesafe, Inc. +Copyright (c) 2011-2016 Lightbend, Inc. (formerly Typesafe, Inc.) All rights reserved. diff --git a/doc/License.rtf b/doc/License.rtf index f2258077fa..407700f8dd 100644 --- a/doc/License.rtf +++ b/doc/License.rtf @@ -11,7 +11,7 @@ \fs40 \ \fs26 Copyright (c) 2002-2016 EPFL\ -Copyright (c) 2011-2016 Typesafe, Inc.\ +Copyright (c) 2011-2016 Lightbend, Inc. (formerly Typesafe, Inc.)\ All rights reserved.\ \ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\ diff --git a/project/VersionUtil.scala b/project/VersionUtil.scala index fab22e66d4..6c8aebf74f 100644 --- a/project/VersionUtil.scala +++ b/project/VersionUtil.scala @@ -115,7 +115,9 @@ object VersionUtil { val in = new FileInputStream(file("versions.properties")) try props.load(in) finally in.close() - props.asScala.toMap + props.asScala.toMap.map { + case (k, v) => (k, sys.props.getOrElse(k, v)) // allow system properties to override versions.properties + } } /** Get a subproject version number from `versionProps` */ diff --git a/scripts/jobs/integrate/bootstrap b/scripts/jobs/integrate/bootstrap index 11cf659229..11cf659229 100755..100644 --- a/scripts/jobs/integrate/bootstrap +++ b/scripts/jobs/integrate/bootstrap diff --git a/src/build/genprod.scala b/src/build/genprod.scala index b470348e8c..f85a151ae5 100644 --- a/src/build/genprod.scala +++ b/src/build/genprod.scala @@ -15,7 +15,6 @@ import scala.language.postfixOps * where the argument is the desired output directory * * @author Burak Emir, Stephane Micheloud, Geoffrey Washburn, Paul Phillips - * @version 1.1 */ object genprod extends App { val MAX_ARITY = 22 @@ -353,7 +352,7 @@ object ProductTwo extends Product(2) class Product(val i: Int) extends Group("Product") with Arity { val productElementComment = """ - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/build/maven/scala-compiler-doc-pom.xml b/src/build/maven/scala-compiler-doc-pom.xml index 8572e55b42..0c33d23d61 100644 --- a/src/build/maven/scala-compiler-doc-pom.xml +++ b/src/build/maven/scala-compiler-doc-pom.xml @@ -51,8 +51,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-compiler-interactive-pom.xml b/src/build/maven/scala-compiler-interactive-pom.xml index ad8192b694..d3e5e0b834 100644 --- a/src/build/maven/scala-compiler-interactive-pom.xml +++ b/src/build/maven/scala-compiler-interactive-pom.xml @@ -41,8 +41,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-compiler-pom.xml b/src/build/maven/scala-compiler-pom.xml index 8ca18f6f14..15546109c8 100644 --- a/src/build/maven/scala-compiler-pom.xml +++ b/src/build/maven/scala-compiler-pom.xml @@ -63,8 +63,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-dist-pom.xml b/src/build/maven/scala-dist-pom.xml index 1f6b6710ac..ce511661b0 100644 --- a/src/build/maven/scala-dist-pom.xml +++ b/src/build/maven/scala-dist-pom.xml @@ -62,8 +62,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-library-all-pom.xml b/src/build/maven/scala-library-all-pom.xml index 074c067742..4620c620dc 100644 --- a/src/build/maven/scala-library-all-pom.xml +++ b/src/build/maven/scala-library-all-pom.xml @@ -61,8 +61,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-library-pom.xml b/src/build/maven/scala-library-pom.xml index 78fc05a7c3..e27f8fb12f 100644 --- a/src/build/maven/scala-library-pom.xml +++ b/src/build/maven/scala-library-pom.xml @@ -39,8 +39,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-reflect-pom.xml b/src/build/maven/scala-reflect-pom.xml index c21caefcf2..f7f3c8bc08 100644 --- a/src/build/maven/scala-reflect-pom.xml +++ b/src/build/maven/scala-reflect-pom.xml @@ -44,8 +44,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scalap-pom.xml b/src/build/maven/scalap-pom.xml index 236ac999fc..acdd44f19b 100644 --- a/src/build/maven/scalap-pom.xml +++ b/src/build/maven/scalap-pom.xml @@ -41,8 +41,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/compiler/scala/tools/nsc/GenericRunnerCommand.scala b/src/compiler/scala/tools/nsc/GenericRunnerCommand.scala index 2584054686..24496fa013 100644 --- a/src/compiler/scala/tools/nsc/GenericRunnerCommand.scala +++ b/src/compiler/scala/tools/nsc/GenericRunnerCommand.scala @@ -87,7 +87,11 @@ A file argument will be run as a scala script unless it contains only self-contained compilation units (classes and objects) and exactly one runnable main method. In that case the file will be compiled and the main method invoked. This provides a bridge between scripts and standard -scala source.%n""" +scala source. + +When running a script or using -e, an already running compilation daemon +(fsc) is used, or a new one started on demand. The -nc option can be +used to prevent this.%n""" } object GenericRunnerCommand { diff --git a/src/library/scala/Product1.scala b/src/library/scala/Product1.scala index dbc34ba66a..e82300adf6 100644 --- a/src/library/scala/Product1.scala +++ b/src/library/scala/Product1.scala @@ -24,7 +24,7 @@ trait Product1[@specialized(Int, Long, Double) +T1] extends Any with Product { override def productArity = 1 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product10.scala b/src/library/scala/Product10.scala index 70de79d49a..5fc4874048 100644 --- a/src/library/scala/Product10.scala +++ b/src/library/scala/Product10.scala @@ -24,7 +24,7 @@ trait Product10[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10] extends Any w override def productArity = 10 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product11.scala b/src/library/scala/Product11.scala index 1bb79ac017..dcebc90e3e 100644 --- a/src/library/scala/Product11.scala +++ b/src/library/scala/Product11.scala @@ -24,7 +24,7 @@ trait Product11[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11] extends override def productArity = 11 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product12.scala b/src/library/scala/Product12.scala index d7e1e1b05c..2221170452 100644 --- a/src/library/scala/Product12.scala +++ b/src/library/scala/Product12.scala @@ -24,7 +24,7 @@ trait Product12[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12] e override def productArity = 12 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product13.scala b/src/library/scala/Product13.scala index 8571b45a40..e76f326766 100644 --- a/src/library/scala/Product13.scala +++ b/src/library/scala/Product13.scala @@ -24,7 +24,7 @@ trait Product13[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 13 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product14.scala b/src/library/scala/Product14.scala index a2f5140370..a076e2cc7a 100644 --- a/src/library/scala/Product14.scala +++ b/src/library/scala/Product14.scala @@ -24,7 +24,7 @@ trait Product14[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 14 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product15.scala b/src/library/scala/Product15.scala index 1c6ad0011c..4568aff1fe 100644 --- a/src/library/scala/Product15.scala +++ b/src/library/scala/Product15.scala @@ -24,7 +24,7 @@ trait Product15[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 15 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product16.scala b/src/library/scala/Product16.scala index f03b0b34a2..84dccb0ac8 100644 --- a/src/library/scala/Product16.scala +++ b/src/library/scala/Product16.scala @@ -24,7 +24,7 @@ trait Product16[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 16 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product17.scala b/src/library/scala/Product17.scala index 72df1b496a..0d50898bf4 100644 --- a/src/library/scala/Product17.scala +++ b/src/library/scala/Product17.scala @@ -24,7 +24,7 @@ trait Product17[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 17 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product18.scala b/src/library/scala/Product18.scala index 0402f90a01..9b32265d71 100644 --- a/src/library/scala/Product18.scala +++ b/src/library/scala/Product18.scala @@ -24,7 +24,7 @@ trait Product18[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 18 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product19.scala b/src/library/scala/Product19.scala index b9770db47b..fe6b95669b 100644 --- a/src/library/scala/Product19.scala +++ b/src/library/scala/Product19.scala @@ -24,7 +24,7 @@ trait Product19[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 19 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product2.scala b/src/library/scala/Product2.scala index a43a4a285c..091bcc89de 100644 --- a/src/library/scala/Product2.scala +++ b/src/library/scala/Product2.scala @@ -24,7 +24,7 @@ trait Product2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, Doub override def productArity = 2 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product20.scala b/src/library/scala/Product20.scala index 7b0df201ec..81315e3558 100644 --- a/src/library/scala/Product20.scala +++ b/src/library/scala/Product20.scala @@ -24,7 +24,7 @@ trait Product20[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 20 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product21.scala b/src/library/scala/Product21.scala index f81347aac0..b5967c06e1 100644 --- a/src/library/scala/Product21.scala +++ b/src/library/scala/Product21.scala @@ -24,7 +24,7 @@ trait Product21[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 21 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product22.scala b/src/library/scala/Product22.scala index 7a25891c6e..c7b9da5ce8 100644 --- a/src/library/scala/Product22.scala +++ b/src/library/scala/Product22.scala @@ -24,7 +24,7 @@ trait Product22[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 22 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product3.scala b/src/library/scala/Product3.scala index 9976240935..7154bf5bdf 100644 --- a/src/library/scala/Product3.scala +++ b/src/library/scala/Product3.scala @@ -24,7 +24,7 @@ trait Product3[+T1, +T2, +T3] extends Any with Product { override def productArity = 3 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product4.scala b/src/library/scala/Product4.scala index d6c1543390..046f8c7a7c 100644 --- a/src/library/scala/Product4.scala +++ b/src/library/scala/Product4.scala @@ -24,7 +24,7 @@ trait Product4[+T1, +T2, +T3, +T4] extends Any with Product { override def productArity = 4 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product5.scala b/src/library/scala/Product5.scala index 5f1b11a30d..3e952c8c55 100644 --- a/src/library/scala/Product5.scala +++ b/src/library/scala/Product5.scala @@ -24,7 +24,7 @@ trait Product5[+T1, +T2, +T3, +T4, +T5] extends Any with Product { override def productArity = 5 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product6.scala b/src/library/scala/Product6.scala index efd9408d73..010c68711a 100644 --- a/src/library/scala/Product6.scala +++ b/src/library/scala/Product6.scala @@ -24,7 +24,7 @@ trait Product6[+T1, +T2, +T3, +T4, +T5, +T6] extends Any with Product { override def productArity = 6 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product7.scala b/src/library/scala/Product7.scala index fab0a997a1..24e5a5c05a 100644 --- a/src/library/scala/Product7.scala +++ b/src/library/scala/Product7.scala @@ -24,7 +24,7 @@ trait Product7[+T1, +T2, +T3, +T4, +T5, +T6, +T7] extends Any with Product { override def productArity = 7 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product8.scala b/src/library/scala/Product8.scala index 41391f7050..4a9f65b00e 100644 --- a/src/library/scala/Product8.scala +++ b/src/library/scala/Product8.scala @@ -24,7 +24,7 @@ trait Product8[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8] extends Any with Product override def productArity = 8 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product9.scala b/src/library/scala/Product9.scala index e22538e1ee..9af11f709a 100644 --- a/src/library/scala/Product9.scala +++ b/src/library/scala/Product9.scala @@ -24,7 +24,7 @@ trait Product9[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9] extends Any with Pro override def productArity = 9 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/collection/GenTraversableOnce.scala b/src/library/scala/collection/GenTraversableOnce.scala index 244ff26397..4af2ca23be 100644 --- a/src/library/scala/collection/GenTraversableOnce.scala +++ b/src/library/scala/collection/GenTraversableOnce.scala @@ -67,6 +67,23 @@ trait GenTraversableOnce[+A] extends Any { */ def foreach[U](f: A => U): Unit + /** Tests whether this $coll is known to have a finite size. + * All strict collections are known to have finite size. For a non-strict + * collection such as `Stream`, the predicate returns `'''true'''` if all + * elements have been computed. It returns `'''false'''` if the stream is + * not yet evaluated to the end. Non-empty Iterators usually return + * `'''false'''` even if they were created from a collection with a known + * finite size. + * + * Note: many collection methods will not work on collections of infinite sizes. + * The typical failure mode is an infinite loop. These methods always attempt a + * traversal without checking first that `hasDefiniteSize` returns `'''true'''`. + * However, checking `hasDefiniteSize` can provide an assurance that size is + * well-defined and non-termination is not a concern. + * + * @return `'''true'''` if this collection is known to have finite size, + * `'''false'''` otherwise. + */ def hasDefiniteSize: Boolean def seq: TraversableOnce[A] @@ -81,6 +98,9 @@ trait GenTraversableOnce[+A] extends Any { /** Tests whether the $coll is empty. * + * Note: Implementations in subclasses that are not repeatedly traversable must take + * care not to consume any elements when `isEmpty` is called. + * * @return `true` if the $coll contains no elements, `false` otherwise. */ def isEmpty: Boolean diff --git a/src/library/scala/collection/TraversableLike.scala b/src/library/scala/collection/TraversableLike.scala index fa9a3a7482..d914f2e0ff 100644 --- a/src/library/scala/collection/TraversableLike.scala +++ b/src/library/scala/collection/TraversableLike.scala @@ -138,17 +138,6 @@ trait TraversableLike[+A, +Repr] extends Any result } - /** Tests whether this $coll is known to have a finite size. - * All strict collections are known to have finite size. For a non-strict - * collection such as `Stream`, the predicate returns `'''true'''` if all - * elements have been computed. It returns `'''false'''` if the stream is - * not yet evaluated to the end. - * - * Note: many collection methods will not work on collections of infinite sizes. - * - * @return `'''true'''` if this collection is known to have finite size, - * `'''false'''` otherwise. - */ def hasDefiniteSize = true def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = { diff --git a/src/library/scala/collection/TraversableOnce.scala b/src/library/scala/collection/TraversableOnce.scala index 41362e8dd7..b87fcd166e 100644 --- a/src/library/scala/collection/TraversableOnce.scala +++ b/src/library/scala/collection/TraversableOnce.scala @@ -38,9 +38,10 @@ import scala.reflect.ClassTag * `Traversables`, such as folds, conversions, and other operations which * traverse some or all of the elements and return a derived value. * Directly subclassing `TraversableOnce` is not recommended - instead, - * consider declaring an `Iterator` with a `next` and `hasNext` method, - * creating an `Iterator` with one of the methods on the `Iterator` object, - * or declaring a subclass of `Traversable`. + * consider declaring an `Iterator` with a `next` and `hasNext` method or + * creating an `Iterator` with one of the methods on the `Iterator` object. + * Consider declaring a subclass of `Traversable` instead if the elements + * can be traversed repeatedly. * * @define coll traversable or iterator * @define orderDependent @@ -61,8 +62,8 @@ import scala.reflect.ClassTag trait TraversableOnce[+A] extends Any with GenTraversableOnce[A] { self => + //TODO 2.12: Remove these methods. They are already defined in GenTraversableOnce /* Self-documenting abstract methods. */ - def foreach[U](f: A => U): Unit def isEmpty: Boolean def hasDefiniteSize: Boolean diff --git a/src/library/scala/util/MurmurHash.scala b/src/library/scala/util/MurmurHash.scala index e05fe0875b..1b6db5d6aa 100644 --- a/src/library/scala/util/MurmurHash.scala +++ b/src/library/scala/util/MurmurHash.scala @@ -10,7 +10,7 @@ package scala package util /** An implementation of Austin Appleby's MurmurHash 3.0 algorithm - * (32 bit version); reference: http://code.google.com/p/smhasher + * (32 bit version); reference: https://github.com/aappleby/smhasher * * This is the hash used by collections and case classes (including * tuples). diff --git a/src/library/scala/util/hashing/MurmurHash3.scala b/src/library/scala/util/hashing/MurmurHash3.scala index 4e5537954f..6a56910451 100644 --- a/src/library/scala/util/hashing/MurmurHash3.scala +++ b/src/library/scala/util/hashing/MurmurHash3.scala @@ -193,7 +193,7 @@ private[hashing] class MurmurHash3 { * to remedy some weaknesses and improve performance. This represents the * latest and supposedly final version of the algorithm (revision 136). * - * @see [[http://code.google.com/p/smhasher]] + * @see [[https://github.com/aappleby/smhasher]] */ object MurmurHash3 extends MurmurHash3 { final val arraySeed = 0x3c074a61 diff --git a/src/manual/scala/man1/fsc.scala b/src/manual/scala/man1/fsc.scala index f2f8feb3fa..c7399da635 100644 --- a/src/manual/scala/man1/fsc.scala +++ b/src/manual/scala/man1/fsc.scala @@ -126,11 +126,7 @@ object fsc extends Command { "With Java 1.5 (or newer) one may for example configure the " & "memory usage of the JVM as follows: " & - Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\""), - - "With " & Link("GNU Java", "http://gcc.gnu.org/java/") & " one " & - "may configure the memory usage of the GIJ as follows: " & - Mono("JAVA_OPTS=\"--mx512m --ms16m\"") + Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\"") )))) val exitStatus = Section("EXIT STATUS", diff --git a/src/manual/scala/man1/scala.scala b/src/manual/scala/man1/scala.scala index 92d9c59cca..9f97dd546c 100644 --- a/src/manual/scala/man1/scala.scala +++ b/src/manual/scala/man1/scala.scala @@ -65,6 +65,10 @@ object scala extends Command { "Do not use the " & MBold("fsc") & " offline compiler."), Definition( + CmdOption("nc"), + "Same as " & Mono("-nocompdaemon") & "."), + + Definition( CmdOptionBound("D", "property=value"), "Set a Java system property. If no value is specified, " & "then the property is set to the empty string."), @@ -135,6 +139,11 @@ object scala extends Command { "line. Headers can be used to make stand-alone script files, as shown " & "in the examples below.", + "When running a script or using " & Mono("-e") & ", an already running " & + "compilation daemon (fsc) is used, or a new one started on demand. The " & + Mono("-nocompdaemon") & " or " & Mono("-nc") & " option can be used to " & + "prevent this.", + "If " & Mono("scala") & " is run from an sbaz(1) directory, " & "then it will add to its classpath any jars installed in the " & "lib directory of the sbaz directory. Additionally, if no " & @@ -175,11 +184,7 @@ object scala extends Command { "With Java 1.5 (or newer) one may for example configure the " & "memory usage of the JVM as follows: " & - Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\""), - - "With " & Link("GNU Java", "http://gcc.gnu.org/java/") & " one " & - "may configure the memory usage of the GIJ as follows: " & - Mono("JAVA_OPTS=\"--mx512m --ms16m\"") + Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\"") )))) val examples = Section("EXAMPLES", diff --git a/src/manual/scala/man1/scalac.scala b/src/manual/scala/man1/scalac.scala index 3219b10293..811fb2d94e 100644 --- a/src/manual/scala/man1/scalac.scala +++ b/src/manual/scala/man1/scalac.scala @@ -447,11 +447,7 @@ object scalac extends Command { "With Java 1.5 (or newer) one may for example configure the " & "memory usage of the JVM as follows: " & - Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\""), - - "With " & Link("GNU Java", "http://gcc.gnu.org/java/") & " one " & - "may configure the memory usage of the GIJ as follows: " & - Mono("JAVA_OPTS=\"--mx512m --ms16m\"") + Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\"") )))) val examples = Section("EXAMPLES", diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala index 5b613316cc..9a3f6a6f3f 100644 --- a/src/reflect/scala/reflect/internal/Symbols.scala +++ b/src/reflect/scala/reflect/internal/Symbols.scala @@ -1267,8 +1267,9 @@ trait Symbols extends api.Symbols { self: SymbolTable => /** These should be moved somewhere like JavaPlatform. */ def javaSimpleName: Name = addModuleSuffix(simpleName.dropLocal) - def javaBinaryName: Name = addModuleSuffix(fullNameInternal('/')) - def javaClassName: String = addModuleSuffix(fullNameInternal('.')).toString + def javaBinaryName: Name = name.newName(javaBinaryNameString) + def javaBinaryNameString: String = fullName('/', moduleSuffix) + def javaClassName: String = fullName('.', moduleSuffix) /** The encoded full path name of this symbol, where outer names and inner names * are separated by `separator` characters. @@ -1276,18 +1277,29 @@ trait Symbols extends api.Symbols { self: SymbolTable => * Never adds id. * Drops package objects. */ - final def fullName(separator: Char): String = fullNameAsName(separator).toString - - /** Doesn't drop package objects, for those situations (e.g. classloading) - * where the true path is needed. - */ - private def fullNameInternal(separator: Char): Name = ( - if (isRoot || isRootPackage || this == NoSymbol) name - else if (owner.isEffectiveRoot) name - else effectiveOwner.enclClass.fullNameAsName(separator) append (separator, name) - ) + final def fullName(separator: Char): String = fullName(separator, "") + + private def fullName(separator: Char, suffix: CharSequence): String = { + var b: java.lang.StringBuffer = null + def loop(size: Int, sym: Symbol): Unit = { + val symName = sym.name + val nSize = symName.length - (if (symName.endsWith(nme.LOCAL_SUFFIX_STRING)) 1 else 0) + if (sym.isRoot || sym.isRootPackage || sym == NoSymbol || sym.owner.isEffectiveRoot) { + val capacity = size + nSize + b = new java.lang.StringBuffer(capacity) + b.append(chrs, symName.start, nSize) + } else { + loop(size + nSize + 1, sym.effectiveOwner.enclClass) + b.append(separator) + b.append(chrs, symName.start, nSize) + } + } + loop(suffix.length(), this) + b.append(suffix) + b.toString + } - def fullNameAsName(separator: Char): Name = fullNameInternal(separator).dropLocal + def fullNameAsName(separator: Char): Name = name.newName(fullName(separator, "")) /** The encoded full path name of this symbol, where outer names and inner names * are separated by periods. |