{"issue":{"created_at":"2011-11-23T01:02:21Z","state":"open","updated_at":"2011-11-26T11:48:58Z","user":{"gravatar_id":"475ca1c1637afa0d408cdcbf696c4148","id":50886,"url":"https://api.github.com/users/boggle","login":"boggle","avatar_url":"https://secure.gravatar.com/avatar/475ca1c1637afa0d408cdcbf696c4148?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"comments":2,"body":"Imagine a tail call `{ be foo() as int }` where `foo()` returns an `i32` and on the current arch it is known that integers are 32 bit wide.\r\n\r\nIn this case, it should be ok to drop the cast and tail-call `foo()`.\r\n\r\nThe idea for this came up when rewriting `std::math`, cf\r\n\r\nhttps://github.com/boggle/rust/blob/libmath/src/lib/math.rs","assignee":null,"id":2325307,"pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"labels":[{"color":"d912e0","name":"feature","url":"https://api.github.com/repos/graydon/rust/labels/feature"},{"color":"02e10c","name":"unassigned","url":"https://api.github.com/repos/graydon/rust/labels/unassigned"}],"number":1215,"title":"foo(...)->f as b should be tail callable if both are aliases of the same type","closed_at":null,"html_url":"https://github.com/graydon/rust/issues/1215","milestone":null,"url":"https://api.github.com/repos/graydon/rust/issues/1215"},"action":"created","comment":{"created_at":"2011-11-26T11:48:58Z","updated_at":"2011-11-26T11:48:58Z","user":{"gravatar_id":"475ca1c1637afa0d408cdcbf696c4148","id":50886,"url":"https://api.github.com/users/boggle","login":"boggle","avatar_url":"https://secure.gravatar.com/avatar/475ca1c1637afa0d408cdcbf696c4148?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"body":"Implementing this requires modifying the parser and dropping cast expressions after type checking.  This either needs an extra pass or special treatment of `import`, `const`, and `be`, during `trans`.  \r\n\r\nPlease give feedback on the right approach to implement this.","id":2881148,"url":"https://api.github.com/repos/graydon/rust/issues/comments/2881148"}}