[5.0][Sema] Emit a deprecation warning if a Hashable type only implements hashValue (#21445)
* [Sema] Emit a deprecation warning when hashValue is provided by hash(into:) isn’t
SE-206 deprecated hashValue as a protocol requirement. We should gently encourage people to migrate to hash(into:), for its more secure, easier and faster hashing.
Emit a compiler warning whenever hashValue has an explicit implementation, but hash(into:) doesn’t.
(cherry picked from commit e0495a7e0b33a4dbc4297b0d9cbf391123b3f268)
* [stdlib] Document that `hashValue` is deprecated
(cherry picked from commit 1485404532a7116dff65eaa3e8ad109e8da6f9e5)
* [test] Test new deprecation warning for hashValue implementations
(cherry picked from commit cb3cff55f951cdab8fcf4ad7ad9ccfc6848d7c52)
* Doc fix
Co-Authored-By: lorentey <klorentey@apple.com>
(cherry picked from commit 646849ee64529a2872afdc9894e48dd7d4dca885)
* [test] StdlibUnittest: Add missing hash(into:) implementations
(cherry picked from commit 8e77a2655a603c8b4f362a6edd64e31dccb432e6)
* [test] Modernize hashing throughout the test suite
(cherry picked from commit 666a22feffaf3dcdf35cf0670e76a128d5695576)