Var type implements IEquiv but not IHash

Description

The Var type implements IEquiv based on the var's symbol, but not IHash. That means that two vars with the same symbol compare equal but don't hash equal, which will cause strange results if you put them in a hash-{map,set}:

cljs.user=> (def foo "bar")
#'cljs.user/foo
cljs.user=> (= #'foo #'foo)
true
cljs.user=> (= (hash #'foo) (hash #'foo))
false

Patch forthcoming.

Environment

Tested on OS X 10.11, Chrome.

Assignee

David Nolen

Reporter

Christopher Vermilion

Labels

Approval

None

Patch

Code

Affects versions

Priority

Minor
Configure