{"action":"created","issue":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/27422","repository_url":"https://api.github.com/repos/dart-lang/sdk","labels_url":"https://api.github.com/repos/dart-lang/sdk/issues/27422/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/sdk/issues/27422/comments","events_url":"https://api.github.com/repos/dart-lang/sdk/issues/27422/events","html_url":"https://github.com/dart-lang/sdk/issues/27422","id":179006215,"number":27422,"title":"'var' in strong mode has unexpected semantics","user":{"login":"Hixie","id":551196,"avatar_url":"https://avatars.githubusercontent.com/u/551196?v=3","gravatar_id":"","url":"https://api.github.com/users/Hixie","html_url":"https://github.com/Hixie","followers_url":"https://api.github.com/users/Hixie/followers","following_url":"https://api.github.com/users/Hixie/following{/other_user}","gists_url":"https://api.github.com/users/Hixie/gists{/gist_id}","starred_url":"https://api.github.com/users/Hixie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Hixie/subscriptions","organizations_url":"https://api.github.com/users/Hixie/orgs","repos_url":"https://api.github.com/users/Hixie/repos","events_url":"https://api.github.com/users/Hixie/events{/privacy}","received_events_url":"https://api.github.com/users/Hixie/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dart-lang/sdk/labels/area-language","name":"area-language","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/dart-lang/sdk/milestones/12","html_url":"https://github.com/dart-lang/sdk/milestones/2.0","labels_url":"https://api.github.com/repos/dart-lang/sdk/milestones/12/labels","id":1146965,"number":12,"title":"2.0","description":null,"creator":{"login":"DartBot","id":8958862,"avatar_url":"https://avatars.githubusercontent.com/u/8958862?v=3","gravatar_id":"","url":"https://api.github.com/users/DartBot","html_url":"https://github.com/DartBot","followers_url":"https://api.github.com/users/DartBot/followers","following_url":"https://api.github.com/users/DartBot/following{/other_user}","gists_url":"https://api.github.com/users/DartBot/gists{/gist_id}","starred_url":"https://api.github.com/users/DartBot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DartBot/subscriptions","organizations_url":"https://api.github.com/users/DartBot/orgs","repos_url":"https://api.github.com/users/DartBot/repos","events_url":"https://api.github.com/users/DartBot/events{/privacy}","received_events_url":"https://api.github.com/users/DartBot/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":0,"state":"open","created_at":"2013-02-08T23:27:11Z","updated_at":"2016-09-26T07:31:16Z","due_on":null,"closed_at":null},"comments":34,"created_at":"2016-09-24T02:40:15Z","updated_at":"2016-10-18T18:32:38Z","closed_at":null,"body":"Many Flutter developers will be coming from languages like JavaScript.\r\n\r\nIn JavaScript, `var` means the same as `dynamic` in Dart.\r\n\r\nIn Dart 1.0, `var` also means `dynamic`.\r\n\r\nHowever, in Dart 2.0, `var` means `auto`, as in, take the type of the expression on the right hand side.\r\n\r\nThis means that code such as the following fails:\r\n\r\n```dart\r\nvar widget = new Row(...);\r\n...\r\nwidget = new Container(...);\r\n```\r\n\r\nWe should either make `var` mean `dynamic` or make `var` get the type that is the common denominator of all the expressions that are assigned to the variable. Otherwise we are going to be putting up a barrier to entry for a large class of Flutter developers who do not care about types at all."},"comment":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/comments/254597955","html_url":"https://github.com/dart-lang/sdk/issues/27422#issuecomment-254597955","issue_url":"https://api.github.com/repos/dart-lang/sdk/issues/27422","id":254597955,"user":{"login":"tatumizer","id":778217,"avatar_url":"https://avatars.githubusercontent.com/u/778217?v=3","gravatar_id":"","url":"https://api.github.com/users/tatumizer","html_url":"https://github.com/tatumizer","followers_url":"https://api.github.com/users/tatumizer/followers","following_url":"https://api.github.com/users/tatumizer/following{/other_user}","gists_url":"https://api.github.com/users/tatumizer/gists{/gist_id}","starred_url":"https://api.github.com/users/tatumizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tatumizer/subscriptions","organizations_url":"https://api.github.com/users/tatumizer/orgs","repos_url":"https://api.github.com/users/tatumizer/repos","events_url":"https://api.github.com/users/tatumizer/events{/privacy}","received_events_url":"https://api.github.com/users/tatumizer/received_events","type":"User","site_admin":false},"created_at":"2016-10-18T18:32:38Z","updated_at":"2016-10-18T18:32:38Z","body":"Late to the show, here's my 25 cents CAD.\r\nDamage from breaking existing code is temporary: it would cost you a day of two of extra work.\r\nDamage to the language by introducing extra (confusing) keywords like \"any\" or \"auto\" will be permanent and irreparable.\r\n\r\nChanging type based on future assignment is a strange idea IMO. Compiler will infer \"type\", but human reader of the code won't. Utterly confusing feature.\r\n\r\n\r\n\r\n"}}
{"actor":{"display_login":"tatumizer"}}