{"issue":{"title":"Member aliasing in the import statement","user":{"login":"gavinking","id":579974,"url":"https://api.github.com/users/gavinking","avatar_url":"https://secure.gravatar.com/avatar/8672f1c3b11cc7390ec341ac25d7e88e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8672f1c3b11cc7390ec341ac25d7e88e"},"created_at":"2011-12-26T21:00:41Z","milestone":null,"labels":[{"name":"feature","url":"https://api.github.com/repos/ceylon/ceylon-spec/labels/feature","color":"02e10c"},{"name":"high priority","url":"https://api.github.com/repos/ceylon/ceylon-spec/labels/high+priority","color":"d7e102"}],"state":"open","updated_at":"2011-12-27T01:09:48Z","id":2659906,"closed_at":null,"html_url":"https://github.com/ceylon/ceylon-spec/issues/122","pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"body":"In order to support ceylon/ceylon-compiler#301, I propose a new facility for renaming members of a type in the `import` statement. It would look like this for a plain Ceylon type:\r\n\r\n    import ceylon.language { \r\n        process { error=writeErrorLine } \r\n    }\r\n\r\nLetting you write:\r\n\r\n    process.error(...)\r\n\r\nFor Java interop this needs to support two additional possibilities:\r\n\r\n1. support for `static` members:\r\n    \r\n        import java.util { \r\n            ArrayList, \r\n            Collections { immutableList } \r\n        }\r\n    \r\n    Letting you write:\r\n\r\n        immutableList(ArrayList())\r\n    \r\n2. support for overloaded members:\r\n    \r\n        import java.io { \r\n            ByteArrayOutputStream { \r\n                writeByte = write(Integer), \r\n                writeByteArray = write(Array<Integer>) \r\n            }\r\n        }\r\n    \r\n    Letting you write:\r\n    \r\n        ByteArrayOutputStream().writeByte(2);\r\n","number":122,"url":"https://api.github.com/repos/ceylon/ceylon-spec/issues/122","comments":10,"assignee":{"login":"gavinking","id":579974,"url":"https://api.github.com/users/gavinking","avatar_url":"https://secure.gravatar.com/avatar/8672f1c3b11cc7390ec341ac25d7e88e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8672f1c3b11cc7390ec341ac25d7e88e"}},"comment":{"user":{"login":"quintesse","id":778793,"url":"https://api.github.com/users/quintesse","avatar_url":"https://secure.gravatar.com/avatar/f350819e50453bd9237769a3db644f28?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"f350819e50453bd9237769a3db644f28"},"created_at":"2011-12-27T01:09:48Z","updated_at":"2011-12-27T01:09:48Z","id":3277898,"body":"> Where do we have a specification of which of these things work?\r\n\r\nWell it should *all* work, but because it's still quite new and I haven't had time to test all combinations (so I might actually be wrong about `float`, I don't think we cast the double down to float yet)\r\n\r\n> That's kinda broken.\r\n\r\nTrue.","url":"https://api.github.com/repos/ceylon/ceylon-spec/issues/comments/3277898"},"action":"created"}