{"action":"created","issue":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/26755","repository_url":"https://api.github.com/repos/dart-lang/sdk","labels_url":"https://api.github.com/repos/dart-lang/sdk/issues/26755/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/sdk/issues/26755/comments","events_url":"https://api.github.com/repos/dart-lang/sdk/issues/26755/events","html_url":"https://github.com/dart-lang/sdk/issues/26755","id":161808025,"number":26755,"title":"ExitDetector thinks that loops with breaks might still always exit","user":{"login":"srawlins","id":103167,"avatar_url":"https://avatars.githubusercontent.com/u/103167?v=3","gravatar_id":"","url":"https://api.github.com/users/srawlins","html_url":"https://github.com/srawlins","followers_url":"https://api.github.com/users/srawlins/followers","following_url":"https://api.github.com/users/srawlins/following{/other_user}","gists_url":"https://api.github.com/users/srawlins/gists{/gist_id}","starred_url":"https://api.github.com/users/srawlins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srawlins/subscriptions","organizations_url":"https://api.github.com/users/srawlins/orgs","repos_url":"https://api.github.com/users/srawlins/repos","events_url":"https://api.github.com/users/srawlins/events{/privacy}","received_events_url":"https://api.github.com/users/srawlins/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dart-lang/sdk/labels/area-analyzer","name":"area-analyzer","color":"c7def8"},{"url":"https://api.github.com/repos/dart-lang/sdk/labels/P2%20medium","name":"P2 medium","color":"fbca04"},{"url":"https://api.github.com/repos/dart-lang/sdk/labels/Type:%20bug","name":"Type: bug","color":"ededed"}],"state":"closed","locked":false,"assignee":{"login":"srawlins","id":103167,"avatar_url":"https://avatars.githubusercontent.com/u/103167?v=3","gravatar_id":"","url":"https://api.github.com/users/srawlins","html_url":"https://github.com/srawlins","followers_url":"https://api.github.com/users/srawlins/followers","following_url":"https://api.github.com/users/srawlins/following{/other_user}","gists_url":"https://api.github.com/users/srawlins/gists{/gist_id}","starred_url":"https://api.github.com/users/srawlins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srawlins/subscriptions","organizations_url":"https://api.github.com/users/srawlins/orgs","repos_url":"https://api.github.com/users/srawlins/repos","events_url":"https://api.github.com/users/srawlins/events{/privacy}","received_events_url":"https://api.github.com/users/srawlins/received_events","type":"User","site_admin":false},"assignees":[{"login":"srawlins","id":103167,"avatar_url":"https://avatars.githubusercontent.com/u/103167?v=3","gravatar_id":"","url":"https://api.github.com/users/srawlins","html_url":"https://github.com/srawlins","followers_url":"https://api.github.com/users/srawlins/followers","following_url":"https://api.github.com/users/srawlins/following{/other_user}","gists_url":"https://api.github.com/users/srawlins/gists{/gist_id}","starred_url":"https://api.github.com/users/srawlins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srawlins/subscriptions","organizations_url":"https://api.github.com/users/srawlins/orgs","repos_url":"https://api.github.com/users/srawlins/repos","events_url":"https://api.github.com/users/srawlins/events{/privacy}","received_events_url":"https://api.github.com/users/srawlins/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2016-06-22T23:16:53Z","updated_at":"2016-07-06T00:33:20Z","closed_at":"2016-07-06T00:33:18Z","body":"analyze this:\r\n\r\n```dart\r\nvoid fn() {\r\n  while (true) {\r\n    bool b = false;\r\n    if (b) {\r\n      break;\r\n    } else {\r\n      break;\r\n    }\r\n    throw \"Boo\";\r\n  }\r\n\r\n  print(\"hi\");\r\n}\r\n```\r\n\r\nIt will say that the print statement is dead code, because the while loop apparently always exits, because it has a throw statement in a list of statements.\r\n\r\nHowever, the break statement should be taken into account, to say \"well... the while statement doesn't _always_ exit.\""},"comment":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/comments/230641855","html_url":"https://github.com/dart-lang/sdk/issues/26755#issuecomment-230641855","issue_url":"https://api.github.com/repos/dart-lang/sdk/issues/26755","id":230641855,"user":{"login":"srawlins","id":103167,"avatar_url":"https://avatars.githubusercontent.com/u/103167?v=3","gravatar_id":"","url":"https://api.github.com/users/srawlins","html_url":"https://github.com/srawlins","followers_url":"https://api.github.com/users/srawlins/followers","following_url":"https://api.github.com/users/srawlins/following{/other_user}","gists_url":"https://api.github.com/users/srawlins/gists{/gist_id}","starred_url":"https://api.github.com/users/srawlins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srawlins/subscriptions","organizations_url":"https://api.github.com/users/srawlins/orgs","repos_url":"https://api.github.com/users/srawlins/repos","events_url":"https://api.github.com/users/srawlins/events{/privacy}","received_events_url":"https://api.github.com/users/srawlins/received_events","type":"User","site_admin":false},"created_at":"2016-07-06T00:33:18Z","updated_at":"2016-07-06T00:33:18Z","body":"Fixed in https://github.com/dart-lang/sdk/commit/1a3f7bbcc5d426ab9280c97f0b339cfd2da8de4c."}}
{"actor":{"display_login":"srawlins"}}