Relabel on Map, Keep, and Find First

Please fill out these questions for all feature requests and bug reports. If you're requesting a feature, please let us know why this feature is important or useful, not just what it should do.

  1. What browsers show this problem? All browsers
  2. Please share an example project (if possible). Any project
  3. Describes the steps to reproduce this issue. Add a map block. Right click and select relabel. Select 'find first' or 'keep'
  4. What does Snap! currently do? Gives those blocks a reporter (round) ring, when they should have a Boolean (hexagonal) ring.
    untitled script pic (1)
  5. What should Snap! do instead? Give them the correct ring type.
    untitled script pic (2)
    I know this is not very big, but it could lead to some confusion.

Huh! Good catch, thanks!

That's actually not a bug. Rings are not empty slots, we don't know whether there's something inside and what that might be. So when relabelling we don't exchange rings, but instead preserve the existing ones.

Well, then it's a misfeature. Should still be fixed.

No, it's not a misfeature. Rings are values, we preserve values when relabelling blocks. Same as we don't change strings numbers or other values.

Yes, I agree that in that case it makes sense to preserve the rings. Thanks taking the time to explain.

Well, @legoman3.14 may be convinced, but I'm not. This is another of those things where you insist that users learn some screwy bizarre counterintuitive thing about how you implemented it, instead of us doing what users expect. An empty ring is a slot that expects a procedure as input, same as an empty micro list watcher is a slot that expects a list, a hexagon is a slot that expects a Boolean, and so on. You get the ring from one of the same set of radio buttons that give you the other kinds of input slots. We tell students all the time, "The slot in a C-shaped block is just another input slot; it expects an input of type script."

I think that the rings should change when the slot is empty, but should not
change if the slot is used, if just for the sake of looking nice. Boolean in reporter ring=ugly :smile: