{"action":"opened","issue":{"url":"https://api.github.com/repos/nim-lang/Nim/issues/9931","repository_url":"https://api.github.com/repos/nim-lang/Nim","labels_url":"https://api.github.com/repos/nim-lang/Nim/issues/9931/labels{/name}","comments_url":"https://api.github.com/repos/nim-lang/Nim/issues/9931/comments","events_url":"https://api.github.com/repos/nim-lang/Nim/issues/9931/events","html_url":"https://github.com/nim-lang/Nim/issues/9931","id":389819690,"node_id":"MDU6SXNzdWUzODk4MTk2OTA=","number":9931,"title":"`inc` and `+=` have inconsistent function signatures","user":{"login":"arnetheduck","id":1382986,"node_id":"MDQ6VXNlcjEzODI5ODY=","avatar_url":"https://avatars3.githubusercontent.com/u/1382986?v=4","gravatar_id":"","url":"https://api.github.com/users/arnetheduck","html_url":"https://github.com/arnetheduck","followers_url":"https://api.github.com/users/arnetheduck/followers","following_url":"https://api.github.com/users/arnetheduck/following{/other_user}","gists_url":"https://api.github.com/users/arnetheduck/gists{/gist_id}","starred_url":"https://api.github.com/users/arnetheduck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arnetheduck/subscriptions","organizations_url":"https://api.github.com/users/arnetheduck/orgs","repos_url":"https://api.github.com/users/arnetheduck/repos","events_url":"https://api.github.com/users/arnetheduck/events{/privacy}","received_events_url":"https://api.github.com/users/arnetheduck/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-11T15:31:49Z","updated_at":"2018-12-11T15:31:49Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"https://github.com/nim-lang/Nim/blob/a8b53c97ee041bc02862b17a6b7cf70546979a6e/lib/system.nim#L3836\r\n\r\nhttps://github.com/nim-lang/Nim/blob/a8b53c97ee041bc02862b17a6b7cf70546979a6e/lib/system.nim#L724\r\n\r\nNot sure which one is the right one, but this causes several problems when trying to figure out which one to use:\r\n\r\n* semantics are confusing - I could not find a description of integer handling assumptions in the manual or elsewhere (two, one complement.. or \"whatever c does\"?)\r\n* `inc`, as specified, requires that 'y' is an `int` even when `T` is something else - from what I remember of the `C` gen it just sprinkles `NI` casts liberally which might be surprising if you want to `inc` a `uint8`\r\n* the difference in documentation is also hard to explain\r\n* what's an `Ordinal` actually and why doesn't it include `uint64`? why does `+=` include `uint64` but `Ordinal` does not?\r\n"}}
{"actor":{"display_login":"arnetheduck"}}