{"action":"closed","issue":{"url":"https://api.github.com/repos/scalacenter/scalafix/issues/529","repository_url":"https://api.github.com/repos/scalacenter/scalafix","labels_url":"https://api.github.com/repos/scalacenter/scalafix/issues/529/labels{/name}","comments_url":"https://api.github.com/repos/scalacenter/scalafix/issues/529/comments","events_url":"https://api.github.com/repos/scalacenter/scalafix/issues/529/events","html_url":"https://github.com/scalacenter/scalafix/issues/529","id":283828472,"number":529,"title":"Wartremover migration ","user":{"login":"vovapolu","id":4629312,"avatar_url":"https://avatars3.githubusercontent.com/u/4629312?v=4","gravatar_id":"","url":"https://api.github.com/users/vovapolu","html_url":"https://github.com/vovapolu","followers_url":"https://api.github.com/users/vovapolu/followers","following_url":"https://api.github.com/users/vovapolu/following{/other_user}","gists_url":"https://api.github.com/users/vovapolu/gists{/gist_id}","starred_url":"https://api.github.com/users/vovapolu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vovapolu/subscriptions","organizations_url":"https://api.github.com/users/vovapolu/orgs","repos_url":"https://api.github.com/users/vovapolu/repos","events_url":"https://api.github.com/users/vovapolu/events{/privacy}","received_events_url":"https://api.github.com/users/vovapolu/received_events","type":"User","site_admin":false},"labels":[{"id":538630345,"url":"https://api.github.com/repos/scalacenter/scalafix/labels/rule","name":"rule","color":"0e8a16","default":false},{"id":784724629,"url":"https://api.github.com/repos/scalacenter/scalafix/labels/scalazzi","name":"scalazzi","color":"d93f0b","default":false},{"id":784722462,"url":"https://api.github.com/repos/scalacenter/scalafix/labels/sponsored","name":"sponsored","color":"f93bd7","default":false}],"state":"closed","locked":false,"assignee":{"login":"vovapolu","id":4629312,"avatar_url":"https://avatars3.githubusercontent.com/u/4629312?v=4","gravatar_id":"","url":"https://api.github.com/users/vovapolu","html_url":"https://github.com/vovapolu","followers_url":"https://api.github.com/users/vovapolu/followers","following_url":"https://api.github.com/users/vovapolu/following{/other_user}","gists_url":"https://api.github.com/users/vovapolu/gists{/gist_id}","starred_url":"https://api.github.com/users/vovapolu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vovapolu/subscriptions","organizations_url":"https://api.github.com/users/vovapolu/orgs","repos_url":"https://api.github.com/users/vovapolu/repos","events_url":"https://api.github.com/users/vovapolu/events{/privacy}","received_events_url":"https://api.github.com/users/vovapolu/received_events","type":"User","site_admin":false},"assignees":[{"login":"vovapolu","id":4629312,"avatar_url":"https://avatars3.githubusercontent.com/u/4629312?v=4","gravatar_id":"","url":"https://api.github.com/users/vovapolu","html_url":"https://github.com/vovapolu","followers_url":"https://api.github.com/users/vovapolu/followers","following_url":"https://api.github.com/users/vovapolu/following{/other_user}","gists_url":"https://api.github.com/users/vovapolu/gists{/gist_id}","starred_url":"https://api.github.com/users/vovapolu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vovapolu/subscriptions","organizations_url":"https://api.github.com/users/vovapolu/orgs","repos_url":"https://api.github.com/users/vovapolu/repos","events_url":"https://api.github.com/users/vovapolu/events{/privacy}","received_events_url":"https://api.github.com/users/vovapolu/received_events","type":"User","site_admin":false}],"milestone":null,"comments":15,"created_at":"2017-12-21T09:55:23Z","updated_at":"2018-02-13T10:40:57Z","closed_at":"2018-02-13T10:40:57Z","author_association":"COLLABORATOR","body":"Migrate all the [wartremover warts](http://www.wartremover.org/doc/warts.html). https://github.com/wartremover/wartremover/tree/master/core/src/test/scala/wartremover/warts\r\n\r\nThis ticket should also summarise how to use the migrated version.\r\n\r\n`Unsafe` warts\r\n\r\n- [x] Any (`NoInfer.symbols = [\"scala.Any\"]`)\r\n- [x] AsInstanceOf (`Disable.symbols = [\"scala.Any.asInstanceOf\"]`)\r\n- [x] EitherProjectionPartial (`Disable.symbols = [\"scala.util.Either.LeftProjection.get\", \"scala.util.Either.RightProjection.get\"]`)\r\n- [x] IsInstanceOf (`Disable.symbols = [\"scala.Any.isInstanceOf\"]`)\r\n- [ ] TraversableOps (huge list of all overridden methods for now) \r\n- [ ] NonUnitStatements (https://github.com/scalacenter/scalafix/pull/554) (Blocked by absence of `Term.tpe`)\r\n- [x] Null (`DisableSyntax.keywords = [null]`)\r\n- [x] OptionPartial (`Disable.symbols = [\"scala.Option.get\", \"scala.Some.get\", \"scala.None.get\"]`)\r\n- [x] Product (`NoInfer.symbols = [\"scala.Product\"]`)\r\n- [x] Return (`DisableSyntax.keywords = [return]`)\r\n- [x] Serializable (`NoInfer.symbols = [\"java.io.Serializable\"]`)\r\n- [x] StringPlusAny (`NoInfer.symbols = [\"scala.Predef.any2stringadd\"]`)\r\n- [x] Throw (`DisableSyntax.keywords = [throw]`)\r\n- [x] TryPartial (`Disable.symbols = [\"scala.util.Try.get\", \"scala.util.Failure.get\", \"scala.util.Success.get\"]`)\r\n- [x] Var (`DisableSyntax.keywords = [var]`)\r\n\r\nand others\r\n\r\n- [x] AnyVal (`NoInfer.symbols = [\"scala.AnyVal\"]`)\r\n- [ ] ArrayEquals (Blocked by absence of `Term.tpe`)\r\n- [x] DefaultArguments (`DisableSyntax.noDefaultArgs = true`)\r\n- [x] Enumeration (`Disable.symbols = [\"scala.Enumeration\"]`)\r\n- [x] Equals (`Disable.symbols = [\"java.lang.Object.equals\", \"java.lang.Object#`==`\", \"java.lang.Object.eq\", \"java.lang.Object.ne\"]`)\r\n- [ ] ExplicitImplicitTypes (`ExplicitResultTypes` rewrites such cases, we can add option to limit ourselves only to `impilicit`s)\r\n- [x] FinalCaseClass (\r\n(note that scalaz 7.3 has a valid usecase for this... worth special casing. See use in `scalaz.ISet.Tip`) ( `rules = [MissingFinal]`)\r\n- [x] FinalVal (`DisableSyntax.noFinalVal = true`)\r\n- [ ] ForbidInference (no docs on http://www.wartremover.org/doc/warts.html)\r\n- [x] ImplicitConversion (`DisableSyntax.noImplicitConversion = true`)\r\n- [ ] ImplicitParameter (It has quite a lot of specific cases, probably connected with https://github.com/scalacenter/scalafix/issues/526)\r\n- [ ] JavaConversions (another huge list or not?) (Blocked by absence of `Term.tpe`)\r\n- [x] JavaSerializable (`NoInfer.symbols = [\"java.io.Serializable\"]`)\r\n- [x] LeakingSealed (`rules = [MissingFinal]`)\r\n- [ ] MutableDataStructures (one more huge list? `Disable.symbols = [\"\"scala.collection.mutable\"]`)\r\n- [ ] Nothing  (`NoInfer.symbols = [\"scala.Nothing\"]`, but this also blocks things like `Left(\"error\")`, cause it's actually `Left[String, Nothing](\"error\")`)\r\n- [x] Option2Iterable (`NoInfer.symbols = [\"scala.Option.option2Iterable\"]`)\t\r\n- [ ] Overloading (arguable rule, need to discuss with @olafurpg or @fommil)\r\n- [ ] PublicInference\r\n- [ ] Recursion\r\n- [x] ToString  (`Disable.symbols = [\"java.lang.Object.toString\"]`)\r\n- [x] While (`DisableSyntax.keywords = [while]`)\r\n\r\nSee my [blog post](https://vovapolu.github.io/scalafix/2018/02/03/scalafix-wartremover.html) and [example repo](https://github.com/vovapolu/ScalafixWartremov) for this task. "}}
{"actor":{"display_login":"fommil"}}