BUG/DEPR: loc.__setitem__ incorrectly accepting positional slices
- [x] closes #26412
- [x] closes #16121
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

I plan to flesh out the tests before this goes in.

cc @toobaz 
Since this has been such a long time behavior (also used in our own tests ..), I think we should maybe consider raising a warning first. > I think we should maybe consider raising a warning first.

Yah, i'm leaning towards a deprecation cycle, too.   can you rebase, and agree with @jorisvandenbossche this is worth deprecating (even though its an incorrect behavior) updated per comments, but i think the "Do X instead" part isnt quite right.  "Use iloc instead" works for Series, but doesnt work as well for DataFrame lgtm. can you add to the deprcations issue  & rebase; ping on green. added to the deprecation tracker, rebased, and green (though the CI is broken for unrelated reasons)

However I would still like to get a better message for users suggesting an alternative to use for the DataFrame case.  cc @jorisvandenbossche for suggestions? @WillAyd suggestions for a more helpful message for the 2D case? > I'd say something like "use .loc with labels, or .iloc with positions instead." I don't think we can really say which will be easier for the user in the error message, so just don't take a position.

+1 on that. Trying to explain both options more in detail will get a bit complex for the deprecation warning I think > I'd say something like "use .loc with labels, or .iloc with positions instead." I don't think we can really say which will be easier for the user in the error message, so just don't take a position.

Makes sense, updated. thanks @jbrockmendel 