summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | | Merge pull request #5329 from adriaanm/doc-version-was-too-long-begoneAdriaan Moors2016-08-112-13/+10
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Remove doc-version was too long warning
| * | | | | | | | | Remove doc-version was too long warningAdriaan Moors2016-08-112-13/+10
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It would trigger 3091 times per test run. Use CSS to handle overflow instead.
* | | | | | | | | Merge pull request #5272 from som-snytt/issue/8829Adriaan Moors2016-08-1117-29/+46
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-8829 Defaultly scala -feature -deprecation
| * | | | | | | | | SI-8829 Let reporter customize retry messageSom Snytt2016-07-0916-29/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "Re-run with -deprecation" is not always appropriate. REPL gets to customize the message. The API includes the setting and its name, because reflect Settings do not have names. (!)
| * | | | | | | | | SI-8829 Defaultly scala -feature -deprecationSom Snytt2016-07-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turn on `-feature -deprecation` in REPL if neither option is selected. ``` $ ./build/pack/bin/scala Welcome to Scala 2.12.0-20160707-105953-4e564ef (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_92). Type in expressions for evaluation. Or try :help. scala> @deprecated("","") def f = 42 f: Int scala> f toDouble <console>:13: warning: postfix operator toDouble should be enabled by making the implicit value scala.language.postfixOps visible. This can be achieved by adding the import clause 'import scala.language.postfixOps' or by setting the compiler option -language:postfixOps. See the Scaladoc for value scala.language.postfixOps for a discussion why the feature should be explicitly enabled. f toDouble ^ <console>:13: warning: method f is deprecated: f toDouble ^ res1: Double = 42.0 scala> :quit $ scala Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_92). Type in expressions for evaluation. Or try :help. scala> @deprecated("","") def f = 42 f: Int scala> f toDouble warning: there was one deprecation warning; re-run with -deprecation for details warning: there was one feature warning; re-run with -feature for details res1: Double = 42.0 ```
* | | | | | | | | | Merge pull request #5262 from lrytz/t8786Adriaan Moors2016-08-1110-92/+237
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-8786 fix generic signature for @varargs forwarder methods
| * | | | | | | | | | SI-8786 fix generic signature for @varargs forwarder methodsLukas Rytz2016-08-1110-92/+237
| | |_|_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When generating a varargs forwarder for def foo[T](a: T*) the parameter type of the forwarder needs to be Array[Object]. If we gnerate Array[T] in UnCurry, that would be erased to plain Object, and the method would not be a valid varargs. Unfortunately, setting the parameter type to Array[Object] lead to an invalid generic signature - the generic signature should reflect the real signature. This change adds an attachment to the parameter symbol in the varargs forwarder method and special-cases signature generation. Also cleanes up the code to produce the varargs forwarder. For example, type parameter and parameter symbols in the forwarder's method type were not clones, but the same symbols from the original method were re-used.
* | | | | | | | | | Merge pull request #5327 from lrytz/2.12.xLukas Rytz2016-08-118-42/+54
|\ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / |/| | | | | | | | | SI-7187 deprecate eta-expansion of zero-arg method values
| * | | | | | | | | SI-7187 deprecate eta-expansion of zero-arg method valuesAdriaan Moors2016-08-108-42/+54
| | |_|_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For backwards compatiblity with 2.11, we already don't adapt a zero-arg method value to a SAM. In 2.13, we won't do any eta-expansion for zero-arg method values, but we should deprecate first.
* | | | | | | | | Merge pull request #5290 from lrytz/sd48Stefan Zeiger2016-08-094-10/+68
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SD-48 limit the lenght of inlined local variable names
| * | | | | | | | | SD-48 limit the lenght of inlined local variable namesLukas Rytz2016-07-204-10/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When inlining local variables, the names are prefixed with the callee method name. In long chains of inlining, these names can grow indefinitely. This commits introduces a limit.
* | | | | | | | | | Merge pull request #5318 from m0xb/2.12.xLukas Rytz2016-08-091-2/+2
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Typo fix in scala.sys.process.ProcessBuilder.
| * | | | | | | | | | Typo fix in scala.sys.process.ProcessBuilder.Steven Mitchell2016-08-021-2/+2
| | |_|_|_|_|_|_|/ / | |/| | | | | | | |
* | | | | | | | | | Merge pull request #5315 from retronym/topic/raceLukas Rytz2016-08-091-7/+9
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Fix race condition in lambda deserialization
| * | | | | | | | | | Fix race condition in lambda deserializationJason Zaugg2016-07-311-7/+9
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Review of the code made me aware that concurrent calls to `$deserializeLambda$` for some lambda hosting class could result in concurrent calls to operations on `j.u.HashMap`. I've added a synchronized block to avoid this problem. I don't think this is likely to be a bottleneck in practical use cases, but if so we could come up with a lock-free scheme in the future.
* | | | | | | | | | Merge pull request #5302 from soc/topic/deprecation-fixes-2.12Lukas Rytz2016-08-0922-52/+86
|\ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / |/| | | | | | | | | Reduce deprecations and warnings
| * | | | | | | | | Deprecate values that had to be public in older versions...Simon Ochsenreither2016-08-022-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... so we can make them private later.
| * | | | | | | | | Reduce deprecations and warningsSimon Ochsenreither2016-08-0220-50/+75
| |/ / / / / / / /
* | | | | | | | | Merge pull request #5286 from soc/topic/biased-either-fixupStefan Zeiger2016-08-031-24/+48
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | | Improve Scaladoc for Either:
| * | | | | | | | Improve Scaladoc for Either:Simon Ochsenreither2016-07-151-24/+48
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - remove text on projections - add for comprehensions
* | | | | | | | Merge pull request #5313 from adriaanm/fixup-5292Adriaan Moors2016-07-293-4/+4
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Make sure sbt's exit code is seen as script exit code
| * | | | | | | | Make sure sbt's exit code is seen as script exit codeAdriaan Moors2016-07-293-4/+4
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and not grep's exit code, which would mean the test suite's result is determined by whether grep fails or not, instead of partest/junit's hard work
* | | | | | | | Merge pull request #5250 from dimatkach/fast-array-slice-3Adriaan Moors2016-07-281-0/+11
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Override `.slice` in ArrayOps to use arraycopy.
| * | | | | | | | Fixed some style issuesDima Tkach2016-07-271-2/+2
| | | | | | | | |
| * | | | | | | | Override `.slice` in ArrayOps to use arraycopy.Dima Tkach2016-06-281-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it ~10x faster when copying large chunks arround. My benchmark: def bm(duration: Long)(f: => Unit): Int = { val end = System.currentTimeMillis + duration var count = 0 while(System.currentTimeMillis < end) { f count += 1 } count } def measure(seconds: Int)(f: => Unit) = (1 to seconds).map { _ => bm(1000)(f) }.sum / seconds val array = scala.util.Random.alphanumeric.take(1000).toArray measure(20) { array.slice(100, 500) } // ~5 million measure(20) { scala.collection.WrappedArray(array).slice(100, 500) } // ~300K
* | | | | | | | | Merge pull request #5292 from szeiger/wip/sbt-windowsAdriaan Moors2016-07-288-65/+102
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Switch Windows CI build to sbt (w/ some sbt build improvements) [ci: last-only]
| * | | | | | | | | Switch Windows CI build to sbt (w/ some sbt build improvements)Stefan Zeiger2016-07-218-65/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use sbt in `integrate/windows`: This essentially combines the Unix CI jobs `validate/publish-core` and `validate/test`, first publishing a local release built with STARR and then building a new version with that and running all tests on it. - Unify repository handling across build scripts: A new function `generateRepositoriesConfig` in `common`, based on the existing code in `integrate/bootstrap`, writes the `repositories` file for sbt, either with or without an extra bootstrap repository for resolving a previously built version. It is used in all CI scripts to ensure that artifacts are only resolved through the sanctioned proxies and upstream repositories. - The repository URL arguments in `setupPublishCore` and `setupValidateTest` are now optional as well. These commands are used without a URL from `integrate/windows`, which publishes to `local` instead of a temporary remote repository. - `testAll` is now a task instead of a command. It runs the same sequence of sub-tasks as before but does not propagate failures immediately. It always runs all subtasks and reports errors at the end. - The `generateBuildCharacterPropertiesFile` task now includes all properties from `versions.properties` (whose values have potentially been overwritten with `-D` options) in `buildcharacter.properties`.
* | | | | | | | | | Merge pull request #5301 from retronym/ticket/SD-167Adriaan Moors2016-07-264-2/+12
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SD-167 Fine tuning constructor pattern translation Fixes scala/scala-dev#167
| * | | | | | | | | | SD-167 Fine tuning constructor pattern translationJason Zaugg2016-07-254-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Avoid calling NoSymbol.owner when checking whether we're dealing with a case class constructor pattern or a general extractor. Tested manually with the test case in the ticket, no more output is produced under `-Xdev`. - Be more conservative about the conversion to a case class pattern: rather than looking just at the type of the pattern tree, also look at the tree itself to ensure its safe to elide. This change is analagous to SI-4859, which restricted rewrites of case apply calls to case constructors. I've manually tested that case class patterns are still efficiently translated: ``` object Test { def main(args: Array[String]) { Some(1) match { case Some(x) => } } } ``` ``` % qscalac -Xprint:patmat sandbox/test.scala [[syntax trees at end of patmat]] // test.scala package <empty> { object Test extends scala.AnyRef { def <init>(): Test.type = { Test.super.<init>(); () }; def main(args: Array[String]): Unit = { case <synthetic> val x1: Some[Int] = scala.Some.apply[Int](1); case4(){ if (x1.ne(null)) matchEnd3(()) else case5() }; case5(){ matchEnd3(throw new MatchError(x1)) }; matchEnd3(x: Unit){ x } } } } ```
* | | | | | | | | | | Merge pull request #5279 from retronym/ticket/SD-183Adriaan Moors2016-07-263-14/+30
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | SD-183 Make refinement classes ineligible as SAMs
| * | | | | | | | | | | SD-183 Make refinement classes ineligible as SAMsJason Zaugg2016-07-143-14/+30
| | |_|_|_|_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only non-refinement class types need apply, which is the same restriction that we levy on parent types of a class. ``` scala> class C; class D extends C; type CD = C with D; class E extends CD <console>:11: error: class type required but C with D found class C; class D extends C; type CD = C with D; class E extends CD ^ scala> class C; class D extends C; type DC = D with C; class E extends DC <console>:11: error: class type required but D with C found class C; class D extends C; type DC = D with C; class E extends DC ^ ``` Prior to this change: ``` scala> trait T { def t(a: Any): Any }; trait U; abstract class C extends T defined trait T defined trait U defined class C ```` For indy-based lambdas: ``` scala> val tu: T with U = x => x tu: T with U = $$Lambda$1812/317644782@3c3c4a71 scala> tu: U java.lang.ClassCastException: $$Lambda$1812/317644782 cannot be cast to U ... 30 elided ``` For anon class based lambdas: ``` scala> ((x => x): C with U) <console>:14: error: class type required but C with U found ((x => x): C with U) ^ scala> implicit def anyToCWithU(a: Any): C with U = new C with U { def t(a: Any) = a } warning: there was one feature warning; re-run with -feature for details anyToCWithU: (a: Any)C with U scala> (((x: Any) => x): C with U) // SAM chosen but fails to typecheck the expansion uncurry <console>:17: error: class type required but C with U found (((x: Any) => x): C with U) // SAM chosen but fails to typecheck the expansion uncurry ^ ``` Fixes https://github.com/scala/scala-dev/issues/183 While it is tempting to special case refinement classes with no decls by flattening their parents into the parents of the lambda. But there are some subtle issues at play with lineriazation order, as Martin pointed out when I brought this up before: http://www.scala-lang.org/old/node/6817.html
* | | | | | | | | | | Merge pull request #5267 from lrytz/deprecateRemoteAdriaan Moors2016-07-264-19/+21
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Deprecate @remote
| * | | | | | | | | | | Minor cleanups in GenBCodeLukas Rytz2016-07-201-19/+16
| | | | | | | | | | | |
| * | | | | | | | | | | Deprecate scala.remoteLukas Rytz2016-07-203-0/+5
| | |_|_|_|_|/ / / / / | |/| | | | | | | | |
* | | | | | | | | | | Merge pull request #5300 from milessabin/topic/si-4914Adriaan Moors2016-07-262-0/+27
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | SI-4914 Addition of tests resolves as fixed
| * | | | | | | | | | | Added tests for SI-482/SI-4914Miles Sabin2016-07-222-0/+27
| | | | | | | | | | | |
* | | | | | | | | | | | Merge pull request #5299 from mpociecha/improve-intellij-integrationAdriaan Moors2016-07-263-4/+8
|\ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|_|_|/ / / |/| | | | | | | | | | | Improve sbt-based IntelliJ integration in case of Windows
| * | | | | | | | | | | Improve sbt-based IntelliJ integration in case of WindowsMichaƂ Pociecha2016-07-223-4/+8
| | |_|_|/ / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use File.pathSeparator when processing classpath instead of just : to don't end up with classpath like "C:\sth\a.jar:C:\sth\b.jar" what was causing problems after split(":"). Display questions first and then wait for user input. I tested on 3 computes and without flush the printed questions were always displayed just after user replied - never before.
* | | | | | | | | | | Merge pull request #5297 from retronym/review/5268Jason Zaugg2016-07-264-5/+4
|\ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|_|_|/ / |/| | | | | | | | | | Disable stub warning by default.
| * | | | | | | | | | Disable stub warning by default.Oscar Boykin2016-07-224-5/+4
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we create a class symbols from a classpath elements, references to other classes that are absent from the classpath are represented as references to "stub symbols". This is not a fatal error; for instance if these references are from the signature of a method that isn't called from the program being compiled, we don't need to know anything about them. A subsequent attempt to look at the type of a stub symbols will trigger a compile error. Currently, the creation of a stub symbol incurs a warning. This commit removes that warning on the basis that it isn't something users need to worry about. javac doesn't emit a comparable warning. The warning is still issued under any of `-verbose` / `-Xdev` / `-Ydebug`.
* | | | | | | | | | Merge pull request #4851 from soc/SI-9560-scaladoc-json-depStefan Zeiger2016-07-2516-93/+116
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | SI-9560 Remove dependency on parser-combinators/json
| * | | | | | | | | SI-9560 Remove dependency on parser-combinators/jsonSimon Ochsenreither2016-07-2216-93/+116
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also update a few example IDE files for Eclipse and IntelliJ. This drops the dependency by integrating the bare minimum functionality to keep things working.
* | | | | | | | | Merge pull request #5295 from varming/cvarming/nepotismStefan Zeiger2016-07-223-1/+8
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-8774 Null link fields in mutable LinkedHashMap (and friends) on remove
| * | | | | | | | | SI-8774 Null link fields in mutable hash maps on removal.Carsten Varming2016-07-213-1/+8
| |/ / / / / / / /
* | | | | | | | | Merge pull request #5281 from dwijnand/either-valueLukas Rytz2016-07-221-2/+6
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Deprecate and rename Left#a/Right#b to Left#value/Right#value
| * | | | | | | | | Deprecate and rename Left#a/Right#b to Left#value/Right#valueDale Wijnand2016-07-141-2/+6
| | |_|_|_|_|/ / / | |/| | | | | | |
* | | | | | | | | Merge pull request #5296 from retronym/ticket/SD-186Lukas Rytz2016-07-222-1/+20
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SD-186 Fix positions in trait method bytecode
| * | | | | | | | | SD-186 Fix positions in trait method bytecodeJason Zaugg2016-07-222-1/+20
| | |_|_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Concrete, non private methods in traits are translated into a static method with an explicit `$this` parameter. After this translation, the references to `$this` (subistuted for `this` in user written code) where being positioned at the position of the method, which makes debugging unpleasant. This commit leaves the `Ident($this)` trees unpositioned. This is analagous to what we do in the body of extension methods, which is the other user of `ThisSubstitutor`. It would be more correct to copy the position of each `This` tree over to the substituted tree. That would let us set a breakpoint on a line that _only_ contained `this`. But in 99% of cases users won't be able to spot the difference, so I've opted for the tried and tested approach here.
* | | | | | | | | Merge pull request #5278 from retronym/ticket/SD-120Lukas Rytz2016-07-225-31/+80
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SD-120 Non FunctionN lambdas should not be universally serializable
| * | | | | | | | | SD-120 Non FunctionN lambdas should not be universally serializableJason Zaugg2016-07-225-31/+80
| | |_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead, we follow the example set by javac, and predicate serializability of bot anon-class and invokedynamic-based lambdas on whether or not the SAM type extends java.io.Serializable. Fixes https://github.com/scala/scala-dev/issues/120