While working on static links, I noticed that the DAP scopes code does
not handle the scenario where a frame decorator returns None. This
situation should be handled identically to a frame decorator returning
an empty iterator.
else:
frame = frame_for_id(id)
scopes = []
- args = frame.frame_args()
+ # Make sure to handle the None case as well as the empty
+ # iterator case.
+ args = tuple(frame.frame_args() or ())
if args:
scopes.append(_ScopeReference("Arguments", "arguments", frame, args))
- locs = frame.frame_locals()
+ # Make sure to handle the None case as well as the empty
+ # iterator case.
+ locs = tuple(frame.frame_locals() or ())
if locs:
scopes.append(_ScopeReference("Locals", "locals", frame, locs))
scopes.append(_RegisterReference("Registers", frame))