{"action":"closed","issue":{"url":"https://api.github.com/repos/NumberFour/n4js/issues/245","repository_url":"https://api.github.com/repos/NumberFour/n4js","labels_url":"https://api.github.com/repos/NumberFour/n4js/issues/245/labels{/name}","comments_url":"https://api.github.com/repos/NumberFour/n4js/issues/245/comments","events_url":"https://api.github.com/repos/NumberFour/n4js/issues/245/events","html_url":"https://github.com/NumberFour/n4js/issues/245","id":168278403,"number":245,"title":"Intersections types must not contain more than one class","user":{"login":"mmews-n4","id":20560257,"avatar_url":"https://avatars.githubusercontent.com/u/20560257?v=3","gravatar_id":"","url":"https://api.github.com/users/mmews-n4","html_url":"https://github.com/mmews-n4","followers_url":"https://api.github.com/users/mmews-n4/followers","following_url":"https://api.github.com/users/mmews-n4/following{/other_user}","gists_url":"https://api.github.com/users/mmews-n4/gists{/gist_id}","starred_url":"https://api.github.com/users/mmews-n4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmews-n4/subscriptions","organizations_url":"https://api.github.com/users/mmews-n4/orgs","repos_url":"https://api.github.com/users/mmews-n4/repos","events_url":"https://api.github.com/users/mmews-n4/events{/privacy}","received_events_url":"https://api.github.com/users/mmews-n4/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-29T08:46:30Z","updated_at":"2016-08-01T09:45:38Z","closed_at":"2016-08-01T09:45:38Z","body":"This is a follow-up issue of GH-13.\r\nThis issue realizes the type constraint 18.2 (Chapter 4.10.2: Intersection types) \"Only one class must be contained in the intersection type\" of the language specification.\r\n\r\nAt moment, only warnings are shown when an intersection type contains two or more unrelated types. This check is done on the type model and uses the simplifies method of the TypeSystemHelper class. \r\n\r\nThe current check won't identify two or more unrelated types in cases of deeply nested composed types. To do so, a thorough analysis would be necessary like converting the composed type into its canonical form (see GH-244). Hence it might be reasonable to analyze the canonical form for solving this issue here.\r\n\r\nSolving this issue here also involves the type constraint solver, since it can also calculate composition types that contain two or more unrelated classes. During this calculation, constraint 18.2 also has to hold and thus can influence the solution of the solver."}}
{"actor":{"display_login":"mor-n4"}}