{"action":"opened","issue":{"url":"https://api.github.com/repos/fsharp/fslang-suggestions/issues/693","repository_url":"https://api.github.com/repos/fsharp/fslang-suggestions","labels_url":"https://api.github.com/repos/fsharp/fslang-suggestions/issues/693/labels{/name}","comments_url":"https://api.github.com/repos/fsharp/fslang-suggestions/issues/693/comments","events_url":"https://api.github.com/repos/fsharp/fslang-suggestions/issues/693/events","html_url":"https://github.com/fsharp/fslang-suggestions/issues/693","id":360316957,"node_id":"MDU6SXNzdWUzNjAzMTY5NTc=","number":693,"title":"Use on multiplae binding (`let x, y = ...` compiles, but `use x, y = ..` not)","user":{"login":"dzmitry-lahoda","id":757125,"node_id":"MDQ6VXNlcjc1NzEyNQ==","avatar_url":"https://avatars3.githubusercontent.com/u/757125?v=4","gravatar_id":"","url":"https://api.github.com/users/dzmitry-lahoda","html_url":"https://github.com/dzmitry-lahoda","followers_url":"https://api.github.com/users/dzmitry-lahoda/followers","following_url":"https://api.github.com/users/dzmitry-lahoda/following{/other_user}","gists_url":"https://api.github.com/users/dzmitry-lahoda/gists{/gist_id}","starred_url":"https://api.github.com/users/dzmitry-lahoda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dzmitry-lahoda/subscriptions","organizations_url":"https://api.github.com/users/dzmitry-lahoda/orgs","repos_url":"https://api.github.com/users/dzmitry-lahoda/repos","events_url":"https://api.github.com/users/dzmitry-lahoda/events{/privacy}","received_events_url":"https://api.github.com/users/dzmitry-lahoda/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-09-14T14:00:02Z","updated_at":"2018-09-14T14:00:02Z","closed_at":null,"author_association":"NONE","body":"# Use on multiplae binding (`let x, y = ...` compiles, but `use x, y = ..` not)\r\n\r\nI propose to have multi `use`.\r\n\r\nCall to `public static void CreateWithSwapChain(DriverType driverType, DeviceCreationFlags flags, SwapChainDescription swapChainDescription, out Device device, out SwapChain swapChain)` as \r\n```\r\n    let device, swapChain = SharpDX.Direct3D11.Device.CreateWithSwapChain(DriverType.Hardware, SharpDX.Direct3D11.DeviceCreationFlags.None, chainSwapDescription)\r\n    device.Dispose()\r\n    swapChain.Dispose()\r\n```\r\n\r\nreplaced with \r\n```\r\nuse device, swapChain = SharpDX.Direct3D11.Device.CreateWithSwapChain(DriverType.Hardware, SharpDX.Direct3D11.DeviceCreationFlags.None, chainSwapDescription)\r\n```\r\n\r\nThe existing way of approaching this problem in F# is `use' bindings must be of the form 'use <var> = <expr>'` error.\r\n\r\n## Pros and Cons \r\n\r\nThe advantages of making this adjustment to F# are better coding to `SharpDX` and similar complex native code wrappers, `use` to support more of `let`.\r\n\r\nThe disadvantages of making this adjustment to F# is that case can be to narrow to support.\r\n\r\n## Affidavit (please submit!)\r\n\r\nPlease tick this by placing a cross in the box:\r\n* [X ] This is not a question (e.g. like one you might ask on [stackoverflow](http://stackoverflow.com)) and I have searched stackoverflow for discussions of this issue\r\n* [X] I have [searched both open and closed suggestions on this site](http://github.com/fsharp/fslang-suggestions/issues) and believe this is not a duplicate\r\n* [X] This is not something which has obviously \"already been decided\" in previous versions of F#.  If you're questioning a fundamental design decision that has obviously already been taken (e.g. \"Make F# untyped\") then please don't submit it.\r\n\r\nPlease tick all that apply:\r\n* [ ] This is not a breaking change to the F# language design\r\n* [ ] I or my company would be willing to help implement and/or test this\r\n\r\n\r\n"}}
{"actor":{"display_login":"dzmitry-lahoda"}}