{"action":"created","issue":{"url":"https://api.github.com/repos/ReactiveX/RxScala/issues/166","labels_url":"https://api.github.com/repos/ReactiveX/RxScala/issues/166/labels{/name}","comments_url":"https://api.github.com/repos/ReactiveX/RxScala/issues/166/comments","events_url":"https://api.github.com/repos/ReactiveX/RxScala/issues/166/events","html_url":"https://github.com/ReactiveX/RxScala/pull/166","id":80224597,"number":166,"title":"Update to using RxJava 1.0.11","user":{"login":"jbripley","id":39431,"avatar_url":"https://avatars.githubusercontent.com/u/39431?v=3","gravatar_id":"","url":"https://api.github.com/users/jbripley","html_url":"https://github.com/jbripley","followers_url":"https://api.github.com/users/jbripley/followers","following_url":"https://api.github.com/users/jbripley/following{/other_user}","gists_url":"https://api.github.com/users/jbripley/gists{/gist_id}","starred_url":"https://api.github.com/users/jbripley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbripley/subscriptions","organizations_url":"https://api.github.com/users/jbripley/orgs","repos_url":"https://api.github.com/users/jbripley/repos","events_url":"https://api.github.com/users/jbripley/events{/privacy}","received_events_url":"https://api.github.com/users/jbripley/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2015-05-24T17:55:34Z","updated_at":"2015-05-29T08:36:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ReactiveX/RxScala/pulls/166","html_url":"https://github.com/ReactiveX/RxScala/pull/166","diff_url":"https://github.com/ReactiveX/RxScala/pull/166.diff","patch_url":"https://github.com/ReactiveX/RxScala/pull/166.patch"},"body":"## Major changes:\r\n* Moves Beta/Experimental methods into Observable from ExperimentalObservable. Most overloaded methods now have the same name as in RxJava, now that they're no longer implicitly defined.\r\n* Adds new RxScala methods for Beta/Experimental methods added in Observable and Subject in RxJava 1.0.10/1.0.11\r\n\r\n## Issues:\r\n* Currently missing Experimental method Subject.getValues(Array[T]), since I'm not good enough at generics to get a Scala version compiling. Due to Array being invariant in Scala and covariant in Java. This is closest I've gotten:\r\n```Scala\r\n@Experimental\r\ndef getValues[U >: T](a: Array[U]): Array[U] = { // use U >: T because Array is invariant\r\n  val us: rx.subjects.Subject[U, U] = asJavaSubject.asInstanceOf[rx.subjects.Subject[U, U]]\r\n  us.getValues(a)\r\n}\r\n```\r\nWhich does not compile:\r\n```Scala\r\nError:(145, 8) overloaded method value getValues with alternatives:\r\n(x$1: Array[U with Object])Array[U with Object] <and>\r\n()Array[Object]\r\ncannot be applied to (Array[U])\r\n  us.getValues(a)\r\n```\r\n* `using(=> Resource)(Resource => Observable[T], Resource => Unit, Boolean)` => `usingWithDisposeEagerly` and `flatMapWith(T => Observable[U])((T, U) => R)(Int)` => `flatMapWithMaxConcurrent`, needed to be renamed to not conflict with existing methods."},"comment":{"url":"https://api.github.com/repos/ReactiveX/RxScala/issues/comments/106745390","html_url":"https://github.com/ReactiveX/RxScala/pull/166#issuecomment-106745390","issue_url":"https://api.github.com/repos/ReactiveX/RxScala/issues/166","id":106745390,"user":{"login":"samuelgruetter","id":2394355,"avatar_url":"https://avatars.githubusercontent.com/u/2394355?v=3","gravatar_id":"","url":"https://api.github.com/users/samuelgruetter","html_url":"https://github.com/samuelgruetter","followers_url":"https://api.github.com/users/samuelgruetter/followers","following_url":"https://api.github.com/users/samuelgruetter/following{/other_user}","gists_url":"https://api.github.com/users/samuelgruetter/gists{/gist_id}","starred_url":"https://api.github.com/users/samuelgruetter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samuelgruetter/subscriptions","organizations_url":"https://api.github.com/users/samuelgruetter/orgs","repos_url":"https://api.github.com/users/samuelgruetter/repos","events_url":"https://api.github.com/users/samuelgruetter/events{/privacy}","received_events_url":"https://api.github.com/users/samuelgruetter/received_events","type":"User","site_admin":false},"created_at":"2015-05-29T08:36:21Z","updated_at":"2015-05-29T08:36:21Z","body":"> [...] so we can avoid to use currying.\r\n\r\n@zsxwing so you prefer the uncurried version, and would consider currying only if it improves type inference?\r\n\r\nI'm not (yet) sure whether I find the curried version nicer:\r\n\r\nCompare\r\n\r\n```scala\r\n.flatMap(\r\n   maxConcurrent = 10,\r\n   v => ...\r\n)\r\n```\r\n\r\nto\r\n\r\n```\r\n.flatMap(maxConcurrent = 10){ v =>\r\n   ...\r\n}\r\n```\r\n"}}