{"push_id":1274731703,"size":134,"distinct_size":134,"ref":"refs/heads/2.12.x","head":"5e91aa563dca2ea6b2aba2b767994c06a0fb2a61","before":"1e7ce6e774f2428356887d71870557b67062ef7f","commits":[{"sha":"1149453c9a762b0a5792d6139ec2c201e418c914","author":{"name":"Antoine Gourlay","email":"2774d14550c0a47bad9bc992ee5d14c3f60603ae@gourlay.fr"},"message":"SI-9585 hide auto-implicit conversions from scaladoc\n\nThis hides implicits conversions (and potential members obtained through\nit) that converts a type into itself, because these conversions are\nusually non-sensical. They are not completely removed, just placed behind\n`-doc-implicits-show-all`, like other implicits deemed probably useless.\n\n---\n\nConsider the scaladoc for the following class:\n\n```\nobject Box {\n  implicit def anyToBox[T](t: T): Box[T] = new Box(t)\n}\nclass Box[T](val t: T)\n```\n\nWhen looking for implicits members to add to class `Box`, it finds the\nimplicit conversion `anyToBox`, and applies it to itself to have an\nimplicit conversion to Box[Box[T]], which brings a useless implicit\nmember `t: Box[T]`.\n\nThis commit makes scaladoc ignore any conversion from a type to itself\n(even if type parameters differ) by default.\n\nUsing the (very useful) `tools/scaladoc-diff` script, I found that this\nchange removes the following conversion from the library doc:\n\n```\nEnsuring[A] to Ensuring[Ensuring[A]]\nanytostringadd[A] to any2stringadd[anytostringadd[A]]\nArrowAssoc[A] to ArrowAssoc[ArrowAssoc[A]]\n=:=[From,To] to =:=[From,To]\nSearchImpl[A,Repr] to SearchImpl[A,SearchImpl[A,Repr]]\nCollectionsHaveToParArray[C, T]  to CollectionsHaveToParArray[CollectionsHaveToParArray[C, T], T]\nOrdered[A] to Ordered[Ordered[A]]\nStringFormat[A] to StringFormat[StringFormat[A]]\n```","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/1149453c9a762b0a5792d6139ec2c201e418c914"},{"sha":"add83b8a8fea641c3ba96ed963c25c84ffe137fb","author":{"name":"Dima Tkach","email":"9296bb6270d7c3f997a1fb3eaffd20279ae8cd29@lookout.com"},"message":"Override `.slice` in ArrayOps to use arraycopy.\n\nThis makes it ~10x faster when copying large chunks arround.\nMy benchmark:\n\ndef bm(duration: Long)(f: => Unit): Int = {\nval end = System.currentTimeMillis + duration\nvar count = 0\nwhile(System.currentTimeMillis < end) {\nf\ncount += 1\n}\ncount\n}\n\ndef measure(seconds: Int)(f: => Unit) = (1 to seconds).map { _ => bm(1000)(f) }.sum / seconds\n\nval array = scala.util.Random.alphanumeric.take(1000).toArray\n\nmeasure(20) { array.slice(100, 500) }\n// ~5 million\nmeasure(20) { scala.collection.WrappedArray(array).slice(100, 500) }\n// ~300K","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/add83b8a8fea641c3ba96ed963c25c84ffe137fb"},{"sha":"c2ca66af4214dcd2e17be038741fe63a47bb2725","author":{"name":"Stefan Zeiger","email":"924ecd33b566ad2611882686aea56dc565588177@novocode.com"},"message":"SI-6881 Detect reference equality when comparing streams\n\n`==` already covers this case. We override `equals` in `Stream` to do\nthe same when `equals` is called directly. This takes care of identical\nstreams.\n\nTo support short-circuiting equality checks on elements prepended to\nidentical streams we also override `sameElements` in `Cons` to treat\nthe case where both sides are `Cons` separately.\n\nTests in StreamTest.test_reference_equality.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/c2ca66af4214dcd2e17be038741fe63a47bb2725"},{"sha":"f805cf526abb4343990ed31db6c63436d6fe4fde","author":{"name":"Som Snytt","email":"3c3f83f1f185f1ed954b8448b0a64ad9c8269a57@gmail.com"},"message":"SI-9847 Nuance pure expr statement warning\n\nClarify the current warning, which means that an expression\nsplit over multiple lines may not be parsed as naively expected.\n\nWhen typing a block, attempt minor nuance. For instance, a\nsingle expression is not in need of parens. Try to avoid\nduplicate warnings for expressions that were adapted away\nfrom result position.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/f805cf526abb4343990ed31db6c63436d6fe4fde"},{"sha":"7d94d553e960322472e274669bad1c47723c2d23","author":{"name":"Som Snytt","email":"3c3f83f1f185f1ed954b8448b0a64ad9c8269a57@gmail.com"},"message":"SI-8829 Defaultly scala -feature -deprecation\n\nTurn on `-feature -deprecation` in REPL if neither option\nis selected.\n\n```\n$ ./build/pack/bin/scala\nWelcome to Scala 2.12.0-20160707-105953-4e564ef (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_92).\nType in expressions for evaluation. Or try :help.\n\nscala> @deprecated(\"\",\"\") def f = 42\nf: Int\n\nscala> f toDouble\n<console>:13: warning: postfix operator toDouble should be enabled\nby making the implicit value scala.language.postfixOps visible.\nThis can be achieved by adding the import clause 'import scala.language.postfixOps'\nor by setting the compiler option -language:postfixOps.\nSee the Scaladoc for value scala.language.postfixOps for a discussion\nwhy the feature should be explicitly enabled.\n       f toDouble\n         ^\n<console>:13: warning: method f is deprecated:\n       f toDouble\n       ^\nres1: Double = 42.0\n\nscala> :quit\n$ scala\nWelcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_92).\nType in expressions for evaluation. Or try :help.\n\nscala> @deprecated(\"\",\"\") def f = 42\nf: Int\n\nscala> f toDouble\nwarning: there was one deprecation warning; re-run with -deprecation for details\nwarning: there was one feature warning; re-run with -feature for details\nres1: Double = 42.0\n\n```","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/7d94d553e960322472e274669bad1c47723c2d23"},{"sha":"7548d2265361ec605b67aaae50ef6504937da68c","author":{"name":"Som Snytt","email":"3c3f83f1f185f1ed954b8448b0a64ad9c8269a57@gmail.com"},"message":"SI-8829 Let reporter customize retry message\n\n\"Re-run with -deprecation\" is not always appropriate.\n\nREPL gets to customize the message. The API includes the\nsetting and its name, because reflect Settings do not\nhave names. (!)","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/7548d2265361ec605b67aaae50ef6504937da68c"},{"sha":"f806073d32a476d156f1b3ec24c17f35ed65b4c3","author":{"name":"Jason Zaugg","email":"ed7c853e8cee0d3b3580a0be792529cf101f03e4@gmail.com"},"message":"SD-183 Make refinement classes ineligible as SAMs\n\nOnly non-refinement class types need apply, which is the same\nrestriction that we levy on parent types of a class.\n\n```\nscala> class C; class D extends C; type CD = C with D; class E extends CD\n<console>:11: error: class type required but C with D found\n       class C; class D extends C; type CD = C with D; class E extends CD\n                                                                       ^\n\nscala> class C; class D extends C; type DC = D with C; class E extends DC\n<console>:11: error: class type required but D with C found\n       class C; class D extends C; type DC = D with C; class E extends DC\n                                                                       ^\n```\n\nPrior to this change:\n\n```\nscala> trait T { def t(a: Any): Any }; trait U; abstract class C extends T\ndefined trait T\ndefined trait U\ndefined class C\n````\n\nFor indy-based lambdas:\n\n```\nscala> val tu: T with U = x => x\ntu: T with U = $$Lambda$1812/317644782@3c3c4a71\n\nscala> tu: U\njava.lang.ClassCastException: $$Lambda$1812/317644782 cannot be cast to U\n  ... 30 elided\n```\n\nFor anon class based lambdas:\n\n```\n\nscala> ((x => x): C with U)\n<console>:14: error: class type required but C with U found\n       ((x => x): C with U)\n           ^\n\nscala> implicit def anyToCWithU(a: Any): C with U = new C with U { def t(a: Any) = a }\nwarning: there was one feature warning; re-run with -feature for details\nanyToCWithU: (a: Any)C with U\n\nscala> (((x: Any) => x): C with U) // SAM chosen but fails to typecheck the expansion uncurry\n<console>:17: error: class type required but C with U found\n       (((x: Any) => x): C with U) // SAM chosen but fails to typecheck the expansion uncurry\n                  ^\n```\n\nFixes https://github.com/scala/scala-dev/issues/183\n\nWhile it is tempting to special case refinement classes with no decls by\nflattening their parents into the parents of the lambda. But there are\nsome subtle issues at play with lineriazation order, as Martin pointed out\nwhen I brought this up before: http://www.scala-lang.org/old/node/6817.html","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/f806073d32a476d156f1b3ec24c17f35ed65b4c3"},{"sha":"a0590aa9ba45e83c8c8d496b8ab132966b1a7a95","author":{"name":"Lukas Rytz","email":"5cbdf6e2c4d3aeb436f9f1dfc215f66ee5cda9e4@gmail.com"},"message":"SD-182 compiler option -Xgen-mixin-forwarders\n\nIntroduce a compiler option -Xgen-mixin-forwarders to always generate\nmixin forwarder methods.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/a0590aa9ba45e83c8c8d496b8ab132966b1a7a95"},{"sha":"cc36165cf298594208a94bd9f631bc4b0aada645","author":{"name":"Simon Ochsenreither","email":"3a69a7dd305e9c7705028afae27095688d25197a@ochsenreither.de"},"message":"Improve Scaladoc for Either:\n- remove text on projections\n- add for comprehensions","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/cc36165cf298594208a94bd9f631bc4b0aada645"},{"sha":"2c2fd4f4b63e1d9a6ee1243637ad8bcb0deb11d6","author":{"name":"Lukas Rytz","email":"5cbdf6e2c4d3aeb436f9f1dfc215f66ee5cda9e4@gmail.com"},"message":"SD-20 Inlcude static methods in the InlineInfo in mixed compilation\n\nIn mixed compilation, the InlineInfo for a Java-defined class is created\nusing the class symbol (vs in separate compilation, where the info is\ncreated by looking at the classfile and its methods). The scala compiler\nputs static java methods into the companion symbol, and we forgot to\ninclude them in the list of methods in the InlineInfo.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/2c2fd4f4b63e1d9a6ee1243637ad8bcb0deb11d6"},{"sha":"2b1e4efa0a8f30bda7fde8492e8ecfdcbf4801cb","author":{"name":"Lukas Rytz","email":"5cbdf6e2c4d3aeb436f9f1dfc215f66ee5cda9e4@gmail.com"},"message":"SD-48 limit the lenght of inlined local variable names\n\nWhen inlining local variables, the names are prefixed with the callee\nmethod name. In long chains of inlining, these names can grow\nindefinitely. This commits introduces a limit.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/2b1e4efa0a8f30bda7fde8492e8ecfdcbf4801cb"},{"sha":"f510aa55cfd537788720f9bb89409f0373d8c471","author":{"name":"Lukas Rytz","email":"5cbdf6e2c4d3aeb436f9f1dfc215f66ee5cda9e4@gmail.com"},"message":"Deprecate scala.remote","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/f510aa55cfd537788720f9bb89409f0373d8c471"},{"sha":"4c33a55c9596eea109ac583dc6b5896fec64c0c1","author":{"name":"Lukas Rytz","email":"5cbdf6e2c4d3aeb436f9f1dfc215f66ee5cda9e4@gmail.com"},"message":"Minor cleanups in GenBCode","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/4c33a55c9596eea109ac583dc6b5896fec64c0c1"},{"sha":"faa4110fc7d8b92cac1e50a6952cdf3bc85d1cdf","author":{"name":"Stefan Zeiger","email":"924ecd33b566ad2611882686aea56dc565588177@novocode.com"},"message":"Switch Windows CI build to sbt (w/ some sbt build improvements)\n\n- Use sbt in `integrate/windows`: This essentially combines the Unix CI\n  jobs `validate/publish-core` and `validate/test`, first publishing a\n  local release built with STARR and then building a new version with\n  that and running all tests on it.\n\n- Unify repository handling across build scripts: A new function\n  `generateRepositoriesConfig` in `common`, based on the existing code\n  in `integrate/bootstrap`, writes the `repositories` file for sbt,\n  either with or without an extra bootstrap repository for resolving a\n  previously built version. It is used in all CI scripts to ensure that\n  artifacts are only resolved through the sanctioned proxies and\n  upstream repositories.\n\n- The repository URL arguments in `setupPublishCore` and\n  `setupValidateTest` are now optional as well. These commands are used\n  without a URL from `integrate/windows`, which publishes to `local`\n  instead of a temporary remote repository.\n\n- `testAll` is now a task instead of a command. It runs the same\n  sequence of sub-tasks as before but does not propagate failures\n  immediately. It always runs all subtasks and reports errors at the\n  end.\n\n- The `generateBuildCharacterPropertiesFile` task now includes all\n  properties from `versions.properties` (whose values have potentially\n  been overwritten with `-D` options) in `buildcharacter.properties`.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/faa4110fc7d8b92cac1e50a6952cdf3bc85d1cdf"},{"sha":"caeedcf7f158cb7043e988d0a0ce7a216d973237","author":{"name":"Oscar Boykin","email":"9512c3e05899517c1c4f88f7e4aab81c7a9c7a0a@stripe.com"},"message":"Disable stub warning by default.\n\nWhen we create a class symbols from a classpath elements, references\nto other classes that are absent from the classpath are represented\nas references to \"stub symbols\". This is not a fatal error; for instance\nif these references are from the signature of a method that isn't called\nfrom the program being compiled, we don't need to know anything about them.\nA subsequent attempt to look at the type of a stub symbols will trigger a\ncompile error.\n\nCurrently, the creation of a stub symbol incurs a warning. This commit\nremoves that warning on the basis that it isn't something users need\nto worry about. javac doesn't emit a comparable warning.\n\nThe warning is still issued under any of `-verbose` / `-Xdev` / `-Ydebug`.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/caeedcf7f158cb7043e988d0a0ce7a216d973237"},{"sha":"3205091c5530b41072dc0624a3362809bdadf6ee","author":{"name":"Michał Pociecha","email":"2cc16cdc38ea4d3106ef8c60dc8f93592d4d1832@gmail.com"},"message":"Improve sbt-based IntelliJ integration in case of Windows\n\nUse File.pathSeparator when processing classpath instead of just :\nto don't end up with classpath like \"C:\\sth\\a.jar:C:\\sth\\b.jar\" what\nwas causing problems after split(\":\").\n\nDisplay questions first and then wait for user input. I tested on 3\ncomputes and without flush the printed questions were always displayed\njust after user replied - never before.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/3205091c5530b41072dc0624a3362809bdadf6ee"},{"sha":"ce262e45141db642c2d5c7e4c7427f84fd08f854","author":{"name":"Miles Sabin","email":"7b5d9074aad0c1438ccbad8e2224b3ef9ee3b29f@milessabin.com"},"message":"Added tests for SI-482/SI-4914","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/ce262e45141db642c2d5c7e4c7427f84fd08f854"},{"sha":"a2cba53e18864a5b9092f1e329c6e0afb09566c5","author":{"name":"Jason Zaugg","email":"ed7c853e8cee0d3b3580a0be792529cf101f03e4@gmail.com"},"message":"SD-167 Fine tuning constructor pattern translation\n\n  - Avoid calling NoSymbol.owner when checking whether we're\n    dealing with a case class constructor pattern or a general\n    extractor. Tested manually with the test case in the ticket,\n    no more output is produced under `-Xdev`.\n  - Be more conservative about the conversion to a case class\n    pattern: rather than looking just at the type of the pattern\n    tree, also look at the tree itself to ensure its safe to\n    elide. This change is analagous to SI-4859, which restricted\n    rewrites of case apply calls to case constructors.\n\nI've manually tested that case class patterns are still efficiently\ntranslated:\n\n```\nobject Test {\n  def main(args: Array[String]) {\n    Some(1) match { case Some(x) => }\n  }\n}\n\n```\n\n```\n% qscalac -Xprint:patmat sandbox/test.scala\n[[syntax trees at end of                    patmat]] // test.scala\npackage <empty> {\n  object Test extends scala.AnyRef {\n    def <init>(): Test.type = {\n      Test.super.<init>();\n      ()\n    };\n    def main(args: Array[String]): Unit = {\n      case <synthetic> val x1: Some[Int] = scala.Some.apply[Int](1);\n      case4(){\n        if (x1.ne(null))\n          matchEnd3(())\n        else\n          case5()\n      };\n      case5(){\n        matchEnd3(throw new MatchError(x1))\n      };\n      matchEnd3(x: Unit){\n        x\n      }\n    }\n  }\n}\n```","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/a2cba53e18864a5b9092f1e329c6e0afb09566c5"},{"sha":"4bc9ca51a4b016bdb9c24a7bcb776ae8d5de9436","author":{"name":"Jason Zaugg","email":"ed7c853e8cee0d3b3580a0be792529cf101f03e4@gmail.com"},"message":"Merge pull request #5297 from retronym/review/5268\n\nDisable stub warning by default.","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/4bc9ca51a4b016bdb9c24a7bcb776ae8d5de9436"},{"sha":"7102f643a9670e7c1b12a23375eba27e4359d0a0","author":{"name":"Adriaan Moors","email":"b1bbc8f7d9b1f3f69d0e5ab77559c084f9d79d89@lightbend.com"},"message":"Merge pull request #5299 from mpociecha/improve-intellij-integration\n\nImprove sbt-based IntelliJ integration in case of Windows","distinct":true,"url":"https://api.github.com/repos/jodersky/scala/commits/7102f643a9670e7c1b12a23375eba27e4359d0a0"}]}
{"actor":{"display_login":"jodersky"}}