weavejester/ns-tracker — pull request #14 by ragnard (2013-10-30 14:22:10+00:00)
Title: Ignore dependencies for namespaces that use/require themselves.

This commit prevents a StackOverflowError that will occur when computing
transitive dependencies for a namespace that depends on itself.

Clojure currently allows namespace declarations that use/require itself:

```clojure
(ns x
(:require [x]))
```

ns-tracker adds these as dependencies in its graph but blows up with a StackOverflowError when calculating transitive dependencies.

This proposed fix simply ignores such dependencies, much like the clojure `ns` macro does.

Having self-referential namespaces is obviously wrong, but since the problem is not caught by the `ns` macro it is very hard to debug when it blows up in ns-tracker.