dart-lang/sdk

Not-implemented iteration for objects

DartBot opened this issue · 1 comments

This issue was originally filed by vjeuxx...@gmail.com


What steps will reproduce the problem?

  main() {
    var obj = {"a": 1, "b": 2};
    for (var key in obj) {
      print(key);
    }
  }
http://try-dart-lang.appspot.com/s/EmEO

What is the expected output?
a
b

What do you see instead?
NoSuchMethodException - receiver: '' function name: 'iterator$named' arguments: []]

What version of the product are you using? On what operating system?
Online dart compiler.

Please provide any additional information below.

In the specification it says that "for in" construct is desugared into var n0 = e.iterator(); while (n0.hasNext()) { finalVarOrType id = n0.next();
It is not working because obj.iterator does not exist.

This comment was originally written by antonm@google.com


obj should be of type Map which doesn't implement Iterable. Please, try for (key in obj.getKeys()).


Added Invalid label.