summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Include missing web assets in scaladocscaladoc-include-assetsJakob Odersky2016-05-191-1/+1
|
* Test case for SI-5183, tagged primitives in case classes (#5144)Ben Hutchison2016-05-192-0/+42
| | | Test for SI-7088, arrays containing tagged primitives
* Merge pull request #5176 from lrytz/t9671Lukas Rytz2016-05-196-36/+155
|\ | | | | SI-9671, SI-7397 fix null.asInstanceOf[Int] when pt erases to Object
| * SI-9066 fix null.asInstanceOf[Unit]Lukas Rytz2016-05-183-23/+27
| |
| * SI-9671, SI-7397 fix null.asInstanceOf[Int] when pt erases to ObjectLukas Rytz2016-05-186-30/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Erasure first replaces null.asInstanceOf[Int] by unbox(null). If the expected type erases to object, erasure then introduces a box operation, yielding box(unbox(null)). Note that this value is a box of zero, not null. Erasure has an optimization to replace box(unbox(x)) in case x is of primitive type. 60f1b4b extended this to the case when x is null, which is incorrect in general. The reason was to prevent creating a primitive box to be stored in the unused generic field when creating an instance of a specialized class. A special case ensures that this optimization is still performed.
* | Generate static forwarders for object members in companion interface (#5131)Jason Zaugg2016-05-194-2/+12
| | | | | | | | | | | | | | | | | | | | We used to disable generation of static forwarders when a object had a trait as a companion, as one could not add methods with bodies to an interface in JVM 6. The JVM lifted this restriction to support default methods in interfaces, so we can lift the restriction on static forwarders, too. Fixes https://github.com/scala/scala-dev/issues/59
* | Merge pull request #5130 from retronym/ticket/SD-129Jason Zaugg2016-05-1923-23/+23
|\ \ | |/ |/| SD-129 Mark JFunctionN as serializable
| * SD-129 Mark JFunctionN as serializableJason Zaugg2016-04-2723-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | Before this change, if these were used as the target type of a lambda in Java source code, the lambda would not be serializable. This is somewhat suprising when contrasted with the way that Scala lambdas work in Scala source. Since we copied these classes over from scala-java8-compat, that project has opted to add Serializable as a parent to solve this issue. This commit brings our copy of these interfaces into line with that change.
* | Merge pull request #5174 from retronym/ticket/8756Lukas Rytz2016-05-183-1/+32
|\ \ | | | | | | SI-8756 Fix generic signature for refinement of primitive
| * | SI-8756 Fix generic signature for refinement of primitiveJason Zaugg2016-05-182-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Java generic signature generation was making the wrong assumption about how refinement types should erase to Java generics. This commit passes through the current value of `primitiveOk`, rather than forcing it to `true`. This flag is true when generating the signature for `f2`, but false in `i2` (as we are in a type argument position).
| * | SI-8756 Test to demonstrate the status quoJason Zaugg2016-05-182-0/+31
|/ / | | | | | | | | | | | | | | | | Java generic signatures assume that refinement types should be boxed. Why did `g2` in the test seem to be immune to this bug demonstrated by `f2`? Because we opt to elide the generic signature altogether when no generics are involved.
* | improve README (#5163)Lukas Rytz2016-05-183-185/+287
| |
* | Merge pull request #5103 from ruippeixotog/improve-list-map-set-perfLukas Rytz2016-05-1710-346/+306
|\ \ | | | | | | Improve performance and behavior of ListMap and ListSet
| * | Add SerialVersionUID to ListSetRui Gonçalves2016-05-172-1/+6
| | |
| * | Make ListMap and ListSet implementations similarRui Gonçalves2016-05-174-251/+160
| | | | | | | | | | | | ListSet and ListMap are two collections which share the exact same internal structure. This commit makes the two approaches as similar as possible by renaming and reordering internal methods, improving their Scaladoc and their code style. The Scaladoc of the classes and companion objects is also improved in order to alert users of the time complexity of the collections' operations.
| * | Improve performance and behavior of ListMap and ListSetRui Gonçalves2016-05-179-98/+144
| | | | | | | | | | | | | | | | | | | | | | | | Makes the immutable `ListMap` and `ListSet` collections more alike one another, both in their semantics and in their performance. In terms of semantics, makes the `ListSet` iterator return the elements in their insertion order, as `ListMap` already does. While, as mentioned in SI-8985, `ListMap` and `ListSet` doesn't seem to make any guarantees in terms of iteration order, I believe users expect `ListSet` and `ListMap` to behave in the same way, particularly when they are implemented in the exact same way. In terms of performance, `ListSet` has a custom builder that avoids creation in O(N^2) time. However, this significantly reduces its performance in the creation of small sets, as its requires the instantiation and usage of an auxilliary HashSet. As `ListMap` and `ListSet` are only suitable for small sizes do to their performance characteristics, the builder is removed, the default `SetBuilder` being used instead.
* | | Merge pull request #5170 from retronym/merge/2.11.x-to-2.12.x-20160517Lukas Rytz2016-05-179-27/+115
|\ \ \ | | | | | | | | Merge 2.11.x to 2.12.x [ci: last-only]
| * \ \ Merge remote-tracking branch 'origin/2.11.x' into ↵Jason Zaugg2016-05-179-27/+115
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | merge/2.11.x-to-2.12.x-20160517 Conflicts: build.sbt test/files/run/repl-javap-app.check test/files/run/repl-javap-app.scala
| | * \ \ Merge pull request #5152 from retronym/topic/silencioJason Zaugg2016-05-173-9/+46
| | |\ \ \ | | | | | | | | | | | | Eliminate major sources of daily noise in SBT build.
| | | * | | [backport] sbt build targets build/Adriaan Moors2016-05-171-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It avoids confusion with existing test/partest scripts that test the compiler in build/, while sbt it targeting build-sbt/.
| | | * | | Eliminate major sources of daily noise in SBT build.Jason Zaugg2016-05-163-4/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Intercept incorrect "binary conflict" warning issued by SBT. Fixes https://github.com/scala/scala-dev/issues/100 - Bump to a new version of pantsbuild/jarjar to fix an incompatibility with Java 8 parameter names in class files, which we run into on the 2.12.x branch. See: https://github.com/pantsbuild/jarjar/pull/19 - Disable info level logging for dependency resolve/download.
| | * | | | Merge pull request #5090 from som-snytt/issue/9740-repl-bad-importLukas Rytz2016-05-118-92/+80
| | |\ \ \ \ | | | | | | | | | | | | | | SI-9740 Repl import fix -Yrepl-class-based
| | | * | | | SI-9740 Repl import fix -Yrepl-class-basedSom Snytt2016-05-028-92/+80
| | | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Under `-Yrepl-class-based`, templating must follow the same scoping as under traditional object-based. The new test shows a typical case where two values of the same simple name must be imported in different scopes.
* | | | | | SI-9773 Fix doc for "".lines (#5161)som-snytt2016-05-171-7/+9
| | | | | | | | | | | | | | | | | | An empty string yields an empty iterator.
* | | | | | SI-2458 Clarify spec for package syms (#5151)som-snytt2016-05-171-37/+54
|/ / / / / | | | | | | | | | | | | | | | | | | | | Package definitions are priority 4. Update the big example to be cut/pastable.
* | | | | Reduce boilerplate in compiler JUnit tests (#5158)Jason Zaugg2016-05-1625-258/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many JUnit tests share a compiler instance between all test cases in a class to reduce overhead. This commit refactors the mechanism to reduce the boilerplate. In the new scheme: - Using the `@ClassRule` hook in JUnit, we create a per-class map for each test class. - Per-class values are registered from the test class itself by calling `cached("someKey", () => mkExpensiveThing)` - At the end of the test, the entries in this map are `close()`-ed (if they implement `Closable`), and are released for garbage collection.)
* | | | | Add summary reporting to Scaladoc (#5063)Felix Mulder2016-05-137-23/+81
| | | | |
* | | | | Merge pull request #5146 from som-snytt/issue/9045-msgLukas Rytz2016-05-137-39/+52
|\ \ \ \ \ | | | | | | | | | | | | SI-9045 Error on recursive ctor
| * | | | | SI-9045 Error on recursive ctorSom Snytt2016-05-047-11/+32
| | | | | | | | | | | | | | | | | | | | | | | | If the constructor invokes itself, say so.
| * | | | | SI-9045 Refactor to abuse of matchSom Snytt2016-05-041-36/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Collapse conditionals into match for legible. Yes, guards have scary eval order.
* | | | | | Add check to scala REPL package to improve feedback about implicits (#5159)Jens2016-05-135-4/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the repl is started with additional compiler flags that prevent implicits being in scope (like -Yno-predef) the default message of implicits in scope using :implicits stays the same. This additional check will return the same message if predef is indeed in scope and an adjusted message if Predef is not in scope.
* | | | | | Merge pull request #5156 from retronym/topic/partest-1.0.14Jason Zaugg2016-05-123-3/+3
|\ \ \ \ \ \ | | | | | | | | | | | | | | Bump to scala-partest 1.0.14
| * | | | | | Bump to scala-partest 1.0.14Jason Zaugg2016-05-123-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should fix the bootstrap build by incorporating https://github.com/scala/scala-partest/pull/58
* | | | | | | Correct off-by-one error in Product documentation (#5148)Janek Bogucki2016-05-111-1/+1
| | | | | | |
* | | | | | | SI-9397 Add "_root_" to "GenUtils.scalaFactoryCall" to avoid the scala ↵Shixiong Zhu2016-05-113-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | package name conflits (#5150) When a user imports some package ending with `scala`, the macro expansion of TypeTag may not work because it uses `scala.collection.immutable.List` but it's overrided. This patch adds the `_root_` prefix to avoid the scala package name conflits. Of cause, after this fix, importing a package ending with `_root_` has the same issue. However, people rarely do that.
* | | | | | | SI-9666: Use inline group names in Regex (#4990)som-snytt2016-05-113-8/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delegate `Match group name` to the underlying `matcher`. If that fails, try explicit group names as a fall back. No attempt is made to correlate inline and explicit names. In the following case, either name is accepted: ``` new Regex("a(?<Bar>b*)c", "Bee") ``` But if names are reversed, the error is undetected: ``` new Regex("a(?<Bee>b*)(?<Bar>c)", "Bar", "Bee") ``` Throw IllegalArg on bad group name to be consistent with Java.
* | | | | | | BitSet{1,2} conversion (#5127)Ruslan Sennov2016-05-111-5/+7
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In current implementation when we set high word (elems1) of BitSet2 to zero, the result is BitSet2 again. I believe it is leading to excessive memory usage and result should be BitSet1. Private helper method createSmall(a: Long, b: Long) introduced.
* | | | | | Merge pull request #5154 from retronym/merge/2.11.x-to-2.12.x-20160511Jason Zaugg2016-05-112-22/+49
|\ \ \ \ \ \ | | | | | | | | | | | | | | Merge 2.11.x to 2.12.x
| * \ \ \ \ \ Merge commit 'd06ce96' into merge/2.11.x-to-2.12.x-20160511Jason Zaugg2016-05-112-22/+49
| |\ \ \ \ \ \ | | | |/ / / / | | |/| | | |
| | * | | | | Merge pull request #5128 from szeiger/wip/sbt-ivy-2.11Jason Zaugg2016-05-112-26/+53
| | |\ \ \ \ \ | | | |_|/ / / | | |/| | | | Publish usable Scala distributions to Ivy repositories
| | | * | | | Publish usable Scala distributions to Ivy repositoriesStefan Zeiger2016-05-062-26/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - sbt requires a `default` configuration in the Scala distribution but doesn’t publish such a configuration to Ivy repositories by default. This is not a problem when publishing to a Maven repository because Maven doesn’t use the concept of configurations and Ivy creates a standard set (including `default`) when resolving artifacts from Maven repositories, but it prevents the use of any Scala distribution published with `publishLocal`. The underlying issue is that sbt requires `default` instead of `default(compile)`. We work around this limitation by publishing a dummy `default` configuration. - sbt has hardcoded dependencies on the `scala-library` artifact of type `jar`. In the tradition of `sbt-osgi` we used type `bundle` when publishing via Ivy but this makes the artifacts unusable from sbt. We now publish the OSGi bundles directly as type `jar` (which is compatible with how they appear in Ivy after resolving from a Maven repository). - We have to be more aggressive about not publishing certain subprojects, otherwise `ivy.xml` files could still be published even when using `publishArtifacts := false`. - `removePomDependencies` now also modifies `ivy.xml` in addition to the Maven POM so that bogus dependencies do not leak into the Ivy descriptors. Fixes https://github.com/scala/scala-dev/issues/130
| * | | | | | Merge commit 'cf38506' into merge/2.11.x-to-2.12.x-20160511Jason Zaugg2016-05-110-0/+0
|/| | | | | | | |/ / / / /
| * | | | | Merge pull request #5139 from SethTisue/disable-integrate-ideAdriaan Moors2016-04-281-0/+4
| |\ \ \ \ \ | | | | | | | | | | | | | | disable integrate/ide script on 2.11.x
| | * | | | | disable integrate/ide script on 2.11.xSeth Tisue2016-04-281-0/+4
| | | | | | |
* | | | | | | Merge pull request #5042 from soc/SI-9539Jason Zaugg2016-05-051-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-9539 Specify charset when reading ScalaSignatures, ...
| * | | | | | | SI-9539 Specify charset when reading ScalaSignatures, ...Simon Ochsenreither2016-03-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... without it we would use the platform's default charset.
* | | | | | | | Merge pull request #5083 from xuwei-k/fix-Future-scaladocJason Zaugg2016-05-051-2/+2
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | use Future#foreach instead of onSuccess in example code
| * | | | | | | | use Future#foreach instead of onSuccess in example codexuwei-k2016-04-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bacause Future#onSuccess is deprecated https://github.com/scala/scala/commit/fa0743c32338f147eaf7a
* | | | | | | | | Merge pull request #5112 from lrytz/dropRecursiveClasspathJason Zaugg2016-05-0534-1200/+380
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Remove legacy recursive classpath implementation
| * | | | | | | | | Remove abstraction layer in classpath implementationLukas Rytz2016-05-0233-440/+339
| | | | | | | | | |