{"action":"reopened","issue":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/34592","repository_url":"https://api.github.com/repos/dart-lang/sdk","labels_url":"https://api.github.com/repos/dart-lang/sdk/issues/34592/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/sdk/issues/34592/comments","events_url":"https://api.github.com/repos/dart-lang/sdk/issues/34592/events","html_url":"https://github.com/dart-lang/sdk/issues/34592","id":363973124,"node_id":"MDU6SXNzdWUzNjM5NzMxMjQ=","number":34592,"title":"VM makes `#_foo.bar` a library specific symbol.","user":{"login":"lrhn","id":4865287,"node_id":"MDQ6VXNlcjQ4NjUyODc=","avatar_url":"https://avatars3.githubusercontent.com/u/4865287?v=4","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,"node_id":"MDU6TGFiZWwyMTk5MjgxNjU=","url":"https://api.github.com/repos/dart-lang/sdk/labels/area-vm","name":"area-vm","color":"c7def8","default":false},{"id":334529063,"node_id":"MDU6TGFiZWwzMzQ1MjkwNjM=","url":"https://api.github.com/repos/dart-lang/sdk/labels/type-bug","name":"type-bug","color":"ededed","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-09-26T11:03:29Z","updated_at":"2018-10-02T09:15:35Z","closed_at":null,"author_association":"MEMBER","body":"Symbol literals like `#_foo` introduce a symbol corresponding to the library-private name `_foo`.\r\n\r\nSymbol literals on the form `#id.id` (or with two or more dot-separated identifiers) should introduce a symbol that is *not* library-specific, even if some of the identifiers start with an `_`.\r\n\r\nExample:\r\n```dart\r\nconst x = #_foo.bar;\r\n```\r\nThis symbol should be equal (and identical) to the symbol created for `#_foo.bar` in *any* library (the spec says this explicitly).\r\n\r\nCurrently the VM just checks if the first character is an `_` and makes the identifier private in that case.\r\nIt does not make, say, `#foo._bar` private, so it's not a consistent treatment.\r\n\r\n(Dart2JS doesn't handle private symbol literals at all, yet, so compatibility isn't important yet).\r\n\r\nI doubt anyone is using the feature, so if we want to, we could make any symbol literal containing a `_`-prefixed identifier into a library private symbol (equivalent to other symbol literals with the same identifiers created in the same library, and not to any other symbol literal).\r\nThat would allow such a symbol to be used for the names of constructors, instead of using them for names of libraries. It would still require VM changes since `#foo._bar` is currently not a private synmbol."}}
{"actor":{"display_login":"lrhn"}}