{"action":"created","issue":{"url":"https://api.github.com/repos/WebAssembly/spec/issues/271","repository_url":"https://api.github.com/repos/WebAssembly/spec","labels_url":"https://api.github.com/repos/WebAssembly/spec/issues/271/labels{/name}","comments_url":"https://api.github.com/repos/WebAssembly/spec/issues/271/comments","events_url":"https://api.github.com/repos/WebAssembly/spec/issues/271/events","html_url":"https://github.com/WebAssembly/spec/pull/271","id":145996115,"number":271,"title":"Allow subtyping on optional operands","user":{"login":"rossberg-chromium","id":4247099,"avatar_url":"https://avatars.githubusercontent.com/u/4247099?v=3","gravatar_id":"","url":"https://api.github.com/users/rossberg-chromium","html_url":"https://github.com/rossberg-chromium","followers_url":"https://api.github.com/users/rossberg-chromium/followers","following_url":"https://api.github.com/users/rossberg-chromium/following{/other_user}","gists_url":"https://api.github.com/users/rossberg-chromium/gists{/gist_id}","starred_url":"https://api.github.com/users/rossberg-chromium/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rossberg-chromium/subscriptions","organizations_url":"https://api.github.com/users/rossberg-chromium/orgs","repos_url":"https://api.github.com/users/rossberg-chromium/repos","events_url":"https://api.github.com/users/rossberg-chromium/events{/privacy}","received_events_url":"https://api.github.com/users/rossberg-chromium/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-04-05T13:54:13Z","updated_at":"2016-04-05T14:28:30Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/WebAssembly/spec/pulls/271","html_url":"https://github.com/WebAssembly/spec/pull/271","diff_url":"https://github.com/WebAssembly/spec/pull/271.diff","patch_url":"https://github.com/WebAssembly/spec/pull/271.patch"},"body":"This reverses #180, and adds a number of corresponding tests.\r\n\r\nMotivation: not allowing optional operands to be implicitly dropped (1) reduced the compositionality of the language, (2) made it harder to allow multiple targets (like with a br_if also returning its operand), and (3) put an extra burden on bottom-up type checkers, where the arity might not be known upfront. And with multiple value, we eventually would want to lift this restriction again anyway.\r\n\r\nThis should address issues #227, and enable WebAssembly/design#539.\r\n\r\n@jcbeyler, you filed #179, which lead to #180. Are you okay with reverting to status ante quo?"},"comment":{"url":"https://api.github.com/repos/WebAssembly/spec/issues/comments/205833366","html_url":"https://github.com/WebAssembly/spec/pull/271#issuecomment-205833366","issue_url":"https://api.github.com/repos/WebAssembly/spec/issues/271","id":205833366,"user":{"login":"rossberg-chromium","id":4247099,"avatar_url":"https://avatars.githubusercontent.com/u/4247099?v=3","gravatar_id":"","url":"https://api.github.com/users/rossberg-chromium","html_url":"https://github.com/rossberg-chromium","followers_url":"https://api.github.com/users/rossberg-chromium/followers","following_url":"https://api.github.com/users/rossberg-chromium/following{/other_user}","gists_url":"https://api.github.com/users/rossberg-chromium/gists{/gist_id}","starred_url":"https://api.github.com/users/rossberg-chromium/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rossberg-chromium/subscriptions","organizations_url":"https://api.github.com/users/rossberg-chromium/orgs","repos_url":"https://api.github.com/users/rossberg-chromium/repos","events_url":"https://api.github.com/users/rossberg-chromium/events{/privacy}","received_events_url":"https://api.github.com/users/rossberg-chromium/received_events","type":"User","site_admin":false},"created_at":"2016-04-05T14:28:30Z","updated_at":"2016-04-05T14:28:30Z","body":"@lukewagner, yes, that's the idea: you simply do a join of all branches targeting the block, wrt to the trivial subtyping semi-lattice that has Void as its top type."}}