summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | Merge pull request #1900 from paulp/pr/maybe-rewrap-lessPaul Phillips2013-01-255-11/+65
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Modifies "maybeRewrap" to focus more on the maybe.
| * | | | | | | Modifies "maybeRewrap" to focus more on the maybe.Paul Phillips2013-01-145-11/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Existential types are rewrapped under a bunch of conditions unless the operation performed on the underlying type returns the same type by reference equality. That depends on a foundation of predictability which doesn't exist. The upshot is that existential types were rewrapped with abandon, even when the type were identical. This had both performance and correctness implications. Note where the test case output changes like so: -scala.collection.immutable.List[Any] +scala.collection.immutable.List[<?>] That's correctness.
* | | | | | | | Merge pull request #1939 from soc/SI-6811-movesPaul Phillips2013-01-2417-52/+31
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-6811 Move scala.util.{automata,regexp} ...
| * | | | | | | | SI-6811 Move scala.util.{automata,regexp} ...Simon Ochsenreither2013-01-2117-52/+31
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | ... to scala.xml.dtd.impl and make it private[dtd]
* | | | | | | | Merge pull request #1921 from soc/SI-6811-removalsPaul Phillips2013-01-2480-2389/+144
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | SI-6811 Scheduled removal of deprecated items for 2.11
| * | | | | | | SI-6811 Remove scala.xml.include.sax.MainSimon Ochsenreither2013-01-201-82/+0
| | | | | | | |
| * | | | | | | SI-6811 Remove scala.ScalaObjectSimon Ochsenreither2013-01-181-16/+0
| | | | | | | |
| * | | | | | | SI-6811 Remove the scala.annotation.target packageSimon Ochsenreither2013-01-171-29/+0
| | | | | | | |
| * | | | | | | SI-6811 Misc. removals in util, testing, io, ...Simon Ochsenreither2013-01-1717-870/+82
| | | | | | | |
| * | | | | | | SI-6811 Remove deprecated elements in scala.collectionSimon Ochsenreither2013-01-1715-663/+9
| | | | | | | |
| * | | | | | | SI-6811 Remove parts of scala.concurrent not needed by scala.actorsSimon Ochsenreither2013-01-177-291/+3
| | | | | | | |
| * | | | | | | SI-6811 Remove the scala.util.grammar packageSimon Ochsenreither2013-01-172-48/+0
| | | | | | | |
| * | | | | | | SI-6811 Remove scala.collection.mutable.ConcurrentMapSimon Ochsenreither2013-01-1712-254/+8
| | | | | | | |
| * | | | | | | SI-6811 Remove primitive widenings and /:\Simon Ochsenreither2013-01-1710-81/+15
| | | | | | | |
| * | | | | | | SI-6811 Remove deprecated constructorsSimon Ochsenreither2013-01-174-27/+20
| | | | | | | |
| * | | | | | | SI-6811 Remove usages of scala.annotation.cloneableSimon Ochsenreither2013-01-179-13/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The source file itself will be removed later, because the compiler seems to need it for boot-strapping.
| * | | | | | | SI-6811 Remove scala.annotation.serializableSimon Ochsenreither2013-01-171-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Every usage of it has been eliminated in earlier commits, so the source file can finally be removed, too.
* | | | | | | | Merge pull request #1908 from retronym/ticket/6979Paul Phillips2013-01-201-0/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-6979 Small optimization in lub
| * | | | | | | | SI-6979 Small optimization in lubJason Zaugg2013-01-161-0/+1
| | |_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a member of `lubBase` is final, it cannot be refined in the types we're lubbing.
* | | | | | | | Merge pull request #1926 from gkossakowski/disable-mima-in-masterPaul Phillips2013-01-201-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Disable MIMA in master.
| * | | | | | | | Disable MIMA in master.Grzegorz Kossakowski2013-01-181-1/+1
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Binary compatibility checks do not make sense in master because there's no base point against which we should check.
* | | | | | | | Merge pull request #1919 from paulp/pr/fix-merge-210Paul Phillips2013-01-1749-335/+812
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | Re-merge of #1906
| * | | | | | | Merge commit 'refs/pull/1906/head' into wip/pr-1906Paul Phillips2013-01-1749-335/+812
|/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'refs/pull/1906/head': (24 commits) SI-6675 Test new warning under -Xoldpatmat. SI-6675 -Xlint arity enforcement for extractors SI-6905 - Switch to sneakyThrows instead of Unsafe.throwException as per new jsr166y to avoid issues with Android SI-6963 Deprecates -Xmigration switch SI-5954 Implementation restriction preventing companions in package objs SI-6479 Don't lift try exprs in label arguments. SI-6082 Conditionally expand @ann(x) to @ann(value = x) SI-6126 Test case for varargs of tagged primitives. SI-5440 Test case for exhaustiveness check SI-5340 Change println to log SI-6955 switch emission no longer foiled by type alias clean up synthesizePartialFunction rework partial function synthesis SI-6925 use concrete type in applyOrElse's match's selector SI-5189 detect unsoundness when inferring type of match SI-6946, SI-6924 Greatly improves IsTraversableLike docs SI-6555 Scaladoc's class filter shouldn't drop the last character Backport of SI-6846. Fixes SI-6521, overrides Range#head to be faster SI-6641 Deprecate SwingWorker ... Conflicts: src/compiler/scala/tools/nsc/typechecker/Typers.scala
| * | | | | | | Merge branch '2.10.x'Adriaan Moors2013-01-1649-341/+818
| |\ \ \ \ \ \ \ | | |/ / / / / / | |/| | | / / / | | | |_|/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/doc/Settings.scala src/compiler/scala/tools/nsc/interpreter/CompletionOutput.scala src/compiler/scala/tools/nsc/matching/Patterns.scala src/compiler/scala/tools/nsc/transform/UnCurry.scala src/compiler/scala/tools/nsc/typechecker/Infer.scala src/compiler/scala/tools/nsc/typechecker/PatternMatching.scala src/compiler/scala/tools/nsc/typechecker/Typers.scala src/reflect/scala/reflect/internal/settings/MutableSettings.scala src/reflect/scala/reflect/runtime/Settings.scala src/swing/scala/swing/SwingActor.scala src/swing/scala/swing/SwingWorker.scala test/files/run/t6955.scala
| | * | | | | Merge pull request #1892 from retronym/ticket/6479Paul Phillips2013-01-152-2/+60
| | |\ \ \ \ \ | | | |_|_|/ / | | |/| | | | SI-6479 Don't lift try exprs in label arguments.
| | | * | | | SI-6479 Don't lift try exprs in label arguments.Jason Zaugg2013-01-132-2/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new pattern matcher uses label jumps to GOTO the next case. Uncurry treated these like regular method arguments, and performed the liftedTree() transformation, which ensures that try expressions are only used in a statement position. Even try in statement position of a block used as such an argument are subject to the same transform. This transform stems from the JVM limitation, that try/catch does not leave a value on the stack. See b194446. This commit changes Uncurry to avoid this transform for arguments to label jumps. This avoids needlessly indirect code, and enables tail call elimination in more cases. As an example, Scala 2.10.0 transforms the last method of the enclosed test case to: try { case <synthetic> val x1: Int = 1; case5(){ if (2.==(x1)) { val x2: Int = x1; matchEnd4({ { def liftedTree2(): Unit = try { throw new scala.runtime.NonLocalReturnControl[Unit](nonLocalReturnKey1, ()) } catch { case (e @ (_: ClassNotFoundException)) => () }; liftedTree2() }; TailrecAfterTryCatch.this.bad() }) } else case6() }; case6(){ matchEnd4(throw new MatchError(x1)) }; matchEnd4(x: Unit){ x } } catch { case (ex @ (_: scala.runtime.NonLocalReturnControl[Unit @unchecked])) => if (ex.key().eq(nonLocalReturnKey1)) ex.value() else throw ex } After this patch: @scala.annotation.tailrec final def bad(): Unit = { case <synthetic> val x1: Int = 1; case5(){ if (2.==(x1)) { <synthetic> val x2: Int = x1; matchEnd4({ try { return () } catch { case (e @ (_: ClassNotFoundException)) => () }; TailrecAfterTryCatch.this.bad() }) } else case6() }; case6(){ matchEnd4(throw new MatchError(x1)) }; matchEnd4(x: Unit){ x } }
| | * | | | | Merge pull request #1895 from JamesIry/SI_6963_2.10.xPaul Phillips2013-01-154-1/+8
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | SI-6963 Deprecates -Xmigration switch
| | | * | | | | SI-6963 Deprecates -Xmigration switchJames Iry2013-01-144-1/+8
| | | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -Xmigration is specific to the 2.7 to 2.8 upgrade and is no longer relevant. There is no plan to maintain it so it will be removed. This commit deprecates it in anticipation.
| | * | | | | Merge pull request #1888 from retronym/ticket/6675Paul Phillips2013-01-1511-10/+53
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | SI-6675 -Xlint arity enforcement for extractors
| | | * | | | | SI-6675 Test new warning under -Xoldpatmat.Jason Zaugg2013-01-153-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit should be discarded when merging to master.
| | | * | | | | SI-6675 -Xlint arity enforcement for extractorsJason Zaugg2013-01-158-10/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extractor Patterns changed in 2.10.0 to implement the letter of the spec, which allows a single binding to capture an entire TupleN. But this can hide arity mismatches, especially if the case body uses the bound value as an `Any`. This change warns when this happens under -Xlint.
| | * | | | | | Merge pull request #1879 from adriaanm/ticket-6955Paul Phillips2013-01-153-1/+28
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-6955 switch emission no longer foiled by type alias
| | | * | | | | | SI-6955 switch emission no longer foiled by type aliasAdriaan Moors2013-01-103-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dealias the type of the scrutinee before checking it's switchable now with tests! (using IcodeTest since javap is not available everywhere)
| | * | | | | | | Merge pull request #1894 from retronym/ticket/6082Adriaan Moors2013-01-143-4/+22
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-6082 Conditionally expand @ann(x) to @ann(value = x)
| | | * | | | | | | SI-6082 Conditionally expand @ann(x) to @ann(value = x)Jason Zaugg2013-01-133-4/+22
| | | | |_|/ / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... if the annotation has an argument with the name `value`. Doing so unconditionally obscures error messages. We still require that arguments to ClassFileAnnotations are named, other than for this special case.
| | * | | | | | | Merge pull request #1890 from retronym/ticket/5440Adriaan Moors2013-01-143-0/+13
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-5440 Test case for exhaustiveness check
| | | * | | | | | | SI-5440 Test case for exhaustiveness checkJason Zaugg2013-01-133-0/+13
| | | | |_|/ / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | Reported against patmatclassic, working in virtpatmat.
| | * | | | | | | Merge pull request #1889 from retronym/ticket/5340Adriaan Moors2013-01-143-1/+36
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-5340 Change println to log
| | | * | | | | | | SI-5340 Change println to logJason Zaugg2013-01-133-1/+36
| | | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An esoteric implicit search could trigger an "amb prefix ..." message to standard out. Now the message has been improved and sent to the logger.
| | * | | | | | | Merge pull request #1878 from adriaanm/ticket-6925Adriaan Moors2013-01-145-145/+183
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-6925 use concrete type in applyOrElse's match's selecto
| | | * | | | | | | clean up synthesizePartialFunctionAdriaan Moors2013-01-103-19/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implement the following review comments by @retronym: - [x] Please clothe this naked assert. - [x] Use match to dissect targs and check isFullyDefined. - [x] Instead of `targs.head`/`targs.last`, use `val argTp :: resTp :: Nil = targs`. - [x] Add a quasi-quote-style comment for `apply`. - [x] Factor out mkCastPreservingAnnotations.
| | | * | | | | | | rework partial function synthesisAdriaan Moors2013-01-092-146/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | no behavioral changes, just highly overdue cleanup some TODOs for further improvements
| | | * | | | | | | SI-6925 use concrete type in applyOrElse's match's selectorAdriaan Moors2013-01-092-1/+19
| | | | |_|/ / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a regression introduced in 28483739c3: PartialFunction synthesis was broken so that we'd get: ``` scala> def f[T](xs: Set[T]) = xs collect { case x => x } f: [T](xs: Set[T])scala.collection.immutable.Set[_ <: T] ``` rather than ``` scala> def f[T](xs: Set[T]) = xs collect { case x => x } f: [T](xs: Set[T])scala.collection.immutable.Set[T] ```
| | * | | | | | | Merge pull request #1876 from adriaanm/ticket-5189-infAdriaan Moors2013-01-143-6/+19
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-5189 detect unsoundness when inferring type of match
| | | * | | | | | | SI-5189 detect unsoundness when inferring type of matchAdriaan Moors2013-01-093-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GADT skolems encode type slack that results from pattern matching on variant type constructors I thought they would not longer be relevant after cases have been typed, and since they caused weird issues with the old pattern matcher, I deskolemized in typedCase however, when we don't have an expected type for the match, we need to keep the skolems around until the skolemized type makes it out of the match and it becomes the result of type inference for that match when you do have an expected type, it will propagate to the case-level and the confrontation will thus already take place when typing individual cases
| | * | | | | | | | Merge pull request #1872 from kzys/jira-6555-2.10.xAdriaan Moors2013-01-141-1/+1
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-6555 Scaladoc's class filter shouldn't drop the last character (2.10.x)
| | | * | | | | | | | SI-6555 Scaladoc's class filter shouldn't drop the last characterKato Kazuyoshi2013-01-091-1/+1
| | | | |/ / / / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | The event handler have to wait "keyup", not "keydown".
| | * | | | | | | | Merge pull request #1860 from heathermiller/issue/6930Adriaan Moors2013-01-141-0/+14
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-6930 adds documentation to reduceLeft in TraversableOnce
| | | * | | | | | | | SI-6930 adds documentation to reduceLeft in TraversableOnceHeather Miller2013-01-081-0/+14
| | | | |/ / / / / / | | | |/| | | | | |
| | * | | | | | | | Merge pull request #1838 from viktorklang/wip-6905-√Adriaan Moors2013-01-142-4/+28
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-6594 - Switch to sneakyThrows instead of Unsafe.throwException as per...