{"action":"opened","issue":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/24331","labels_url":"https://api.github.com/repos/dart-lang/sdk/issues/24331/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/sdk/issues/24331/comments","events_url":"https://api.github.com/repos/dart-lang/sdk/issues/24331/events","html_url":"https://github.com/dart-lang/sdk/issues/24331","id":105945774,"number":24331,"title":"Inconsistance in created Invocation object","user":{"login":"sgrekhov","id":4627088,"avatar_url":"https://avatars.githubusercontent.com/u/4627088?v=3","gravatar_id":"","url":"https://api.github.com/users/sgrekhov","html_url":"https://github.com/sgrekhov","followers_url":"https://api.github.com/users/sgrekhov/followers","following_url":"https://api.github.com/users/sgrekhov/following{/other_user}","gists_url":"https://api.github.com/users/sgrekhov/gists{/gist_id}","starred_url":"https://api.github.com/users/sgrekhov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgrekhov/subscriptions","organizations_url":"https://api.github.com/users/sgrekhov/orgs","repos_url":"https://api.github.com/users/sgrekhov/repos","events_url":"https://api.github.com/users/sgrekhov/events{/privacy}","received_events_url":"https://api.github.com/users/sgrekhov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-11T05:11:29Z","updated_at":"2015-09-11T05:11:29Z","closed_at":null,"body":"According Dart specification 16.18.1 Getter Access and Method Extraction if getter lookup failed then\r\n\"If the getter lookup has failed, then a new instance im of the predefined\r\nclass Invocation is created, such that :\r\n• im.isGetter evaluates to true.\r\n• im.memberName evaluates to the symbol m.\r\n• im.positionalArguments evaluates to the value of const [].\r\n• im.namedArguments evaluates to the value of const {}.\r\nThen the method noSuchMethod() is looked up in o and invoked with argument\r\nim, and the result of this invocation is the result of evaluating i.\"\r\n\r\nTake a look at the following code\r\n```dart\r\nclass C {\r\n  void noSuchMethod(Invocation i) {\r\n    print(identical(const[], i.positionalArguments));  // prints true\r\n    print(identical(const{}, i.namedArguments)); // prints false\r\n  }\r\n}\r\n\r\nmain() {\r\n  C o = new C();\r\n  o.someGetter;\r\n}\r\n```\r\nWhy empty constant list of positional arguments equals to const[] but empty map of named arguments is not equal to const{}? According the spec behavior should be the same."}}