{"action":"closed","issue":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/26723","repository_url":"https://api.github.com/repos/dart-lang/sdk","labels_url":"https://api.github.com/repos/dart-lang/sdk/issues/26723/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/sdk/issues/26723/comments","events_url":"https://api.github.com/repos/dart-lang/sdk/issues/26723/events","html_url":"https://github.com/dart-lang/sdk/issues/26723","id":161140953,"number":26723,"title":"VM initializes inherited fields too late.","user":{"login":"lrhn","id":4865287,"avatar_url":"https://avatars.githubusercontent.com/u/4865287?v=3","gravatar_id":"","url":"https://api.github.com/users/lrhn","html_url":"https://github.com/lrhn","followers_url":"https://api.github.com/users/lrhn/followers","following_url":"https://api.github.com/users/lrhn/following{/other_user}","gists_url":"https://api.github.com/users/lrhn/gists{/gist_id}","starred_url":"https://api.github.com/users/lrhn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lrhn/subscriptions","organizations_url":"https://api.github.com/users/lrhn/orgs","repos_url":"https://api.github.com/users/lrhn/repos","events_url":"https://api.github.com/users/lrhn/events{/privacy}","received_events_url":"https://api.github.com/users/lrhn/received_events","type":"User","site_admin":false},"labels":[{"id":219928165,"url":"https://api.github.com/repos/dart-lang/sdk/labels/area-vm","name":"area-vm","color":"c7def8","default":false},{"id":219928192,"url":"https://api.github.com/repos/dart-lang/sdk/labels/Resolution:%20works%20as%20intended","name":"Resolution: works as intended","color":"8d8d8d","default":false},{"id":334529063,"url":"https://api.github.com/repos/dart-lang/sdk/labels/Type:%20bug","name":"Type: bug","color":"ededed","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-06-20T08:24:52Z","updated_at":"2016-11-06T03:29:44Z","closed_at":"2016-11-06T03:29:44Z","body":"Example:\n\n```\nlog(s) { print(s); return s; }\nclass C {\n   var x = log(\"x\");\n   var z;\n   C(z) : z = log(z);\n}\nclass D extends C {\n  var w = log(\"w\");\n  var y;\n  D() : y = log(\"y\"), super(\"z\");\n}\nmain() { new D(); }\n```\n\nWhen run, this prints the initializations in the order \"wyxz\".\nHowever, the specification states that all fields are initialized first, before running the constructors, so the order should be \"wxyz\". That is, the inherited $x$ field should be initialized before the `D` constructor is evaluated, not just before evaluating the `C` constructor.\n"}}
{"actor":{"display_login":"zanderso"}}