main() {
C c = new C();
c.list = ['one', 'two'];
}
In Dart Editor, place a breakpoint on the second to last line and then run. When it stops, click on "step into". Nothing happens. The second time it takes you to List.isEmpty. Four more clicks will finally get you to the body of the setter. (Continuing will drop off the end of main and into system code.)
Devon says:
I think this is likely a case where we've set the dart:core library to be debuggable. We have the ability to turn on and off debugging for the core libraries, so we can disable step-in for dart:core if we think that's best. Changing it often has some non-linear effects though - it can improve the situation for some cases and make it worse in others.
That might be true, but it seems to me that it's wrong when stepping into something appears to do nothing.
Issue by bwilkerson Originally opened as https://github.com/dart-lang/sdk/issues/22096
Enter the following code in a Dart file:
class C { List _list;
set list(List value) { _list = value; } }
main() { C c = new C(); c.list = ['one', 'two']; }
In Dart Editor, place a breakpoint on the second to last line and then run. When it stops, click on "step into". Nothing happens. The second time it takes you to List.isEmpty. Four more clicks will finally get you to the body of the setter. (Continuing will drop off the end of main and into system code.)
Devon says:
I think this is likely a case where we've set the dart:core library to be debuggable. We have the ability to turn on and off debugging for the core libraries, so we can disable step-in for dart:core if we think that's best. Changing it often has some non-linear effects though - it can improve the situation for some cases and make it worse in others.
That might be true, but it seems to me that it's wrong when stepping into something appears to do nothing.