swiftlang/swift

[SR-5819] Suggest `as? AnyHashable` when `as? Equatable` or `as? Hashable` is attempted

Open

#48,389 opened on Sep 1, 2017

View on GitHub
 (8 comments) (0 reactions) (0 assignees)Swift (10,719 forks)batch import
bugcompilerdiagnostics qualitygood first issue

Repository metrics

Stars
 (69,989 stars)
PR merge metrics
 (Avg merge 8d 17h) (510 merged PRs in 30d)

Description

Previous ID SR-5819
Radar None
Original Reporter @jckarter
Type Bug
Votes 0
Component/s Compiler
Labels Bug, DiagnosticsQoI, StarterBug
Assignee None
Priority Medium

md5: 5e4ffb6d40f711123adf86651f9a3a8f

Issue Description:

If you have two values of type Any or otherwise opaque type and you want to test whether they're equal, it's natural to try to write something like:

if let a = a as? Equatable, b = b as? Equatable {
  return a == b
}

Maybe someday that will work, but in the meantime dynamically casting to AnyHashable can get the desired effect. It'd be nice QoI to have a diagnostic telling people they can do this when they try similar things that don't.

Contributor guide