{"action":"created","issue":{"url":"https://api.github.com/repos/louthy/language-ext/issues/85","repository_url":"https://api.github.com/repos/louthy/language-ext","labels_url":"https://api.github.com/repos/louthy/language-ext/issues/85/labels{/name}","comments_url":"https://api.github.com/repos/louthy/language-ext/issues/85/comments","events_url":"https://api.github.com/repos/louthy/language-ext/issues/85/events","html_url":"https://github.com/louthy/language-ext/issues/85","id":149473960,"number":85,"title":"Tooling support (Sonar)","user":{"login":"dhalsim","id":1815485,"avatar_url":"https://avatars.githubusercontent.com/u/1815485?v=3","gravatar_id":"","url":"https://api.github.com/users/dhalsim","html_url":"https://github.com/dhalsim","followers_url":"https://api.github.com/users/dhalsim/followers","following_url":"https://api.github.com/users/dhalsim/following{/other_user}","gists_url":"https://api.github.com/users/dhalsim/gists{/gist_id}","starred_url":"https://api.github.com/users/dhalsim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhalsim/subscriptions","organizations_url":"https://api.github.com/users/dhalsim/orgs","repos_url":"https://api.github.com/users/dhalsim/repos","events_url":"https://api.github.com/users/dhalsim/events{/privacy}","received_events_url":"https://api.github.com/users/dhalsim/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-19T14:16:11Z","updated_at":"2016-04-21T07:54:50Z","closed_at":null,"body":"Hello,\r\n\r\nTo be able to use LanguageExt Immutable Collections (or Immutable Collections) we need to check the returning method's returning value is used or not. After that, a migration could be done without breaking existing code confidently.\r\n\r\nI believe Resharper has this ability but as in our company we don't use it and we use this tool [SonarQube](http://www.sonarqube.org/) which is open source. So I found a Visual Studio extension for Sonar [here](https://github.com/SonarSource-VisualStudio/sonaranalyzer-csharp). \r\n\r\nAnd I found the related rule [here](http://www.sonarlint.org/visualstudio/rules/index.html#sonarLintVersion=2.1.0&ruleId=S2201).\r\n\r\nThis rule were checking value types' (and string's) methods in addition to ImmutableCollection types. But it wasn't working as expected. So I fixed it and added LanguageExt Immutable Collection types, too!\r\n\r\nSo you can check SonarSource-VisualStudio/sonaranalyzer-csharp#864 this pull request. I will close this issue once it will be accepted."},"comment":{"url":"https://api.github.com/repos/louthy/language-ext/issues/comments/212792255","html_url":"https://github.com/louthy/language-ext/issues/85#issuecomment-212792255","issue_url":"https://api.github.com/repos/louthy/language-ext/issues/85","id":212792255,"user":{"login":"louthy","id":1991827,"avatar_url":"https://avatars.githubusercontent.com/u/1991827?v=3","gravatar_id":"","url":"https://api.github.com/users/louthy","html_url":"https://github.com/louthy","followers_url":"https://api.github.com/users/louthy/followers","following_url":"https://api.github.com/users/louthy/following{/other_user}","gists_url":"https://api.github.com/users/louthy/gists{/gist_id}","starred_url":"https://api.github.com/users/louthy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/louthy/subscriptions","organizations_url":"https://api.github.com/users/louthy/orgs","repos_url":"https://api.github.com/users/louthy/repos","events_url":"https://api.github.com/users/louthy/events{/privacy}","received_events_url":"https://api.github.com/users/louthy/received_events","type":"User","site_admin":false},"created_at":"2016-04-21T07:54:50Z","updated_at":"2016-04-21T07:54:50Z","body":"@dhalsim I think looking at the [link you posted](http://www.sonarlint.org/visualstudio/rules/index.html#sonarLintVersion=2.1.0&ruleId=S2201) it would make more sense for me to annotate the library with `[Pure]` attributes.  I had noticed those attributes in the BCL, but wasn't sure what the BCL team were using them for (other than internal tooling); suddenly it's a bit clearer!  \r\n\r\nI'm currently midway through a few large changes on the multi-system branch.  Once that's settled down I'll start the annotations."}}