Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The case of Keyword is complicated by the fact that Keyword instances are controlled. We use a SerializationProxy which implements readResolve() by calling newKeyword() so as to maintain the invariant: Symbol s1 = ..., s2 = ...; Keyword kw1 = Keyword.newKeyword(s1); Keyword kw2 = Keyword.newKeyword(s2); (s1.equals(s2)) == (kw1 == kw2) That is, any two keywords are *identical* if and only if they were created from any two *equal* Symbols. Note that newKeyword(prefix, name) is exactly equivalent to newKeyword(newSymbol(prefix, name)).
- Loading branch information