don't double-count generic types while doing hierarchy scoring, should fix tests
Merge remote-tracking branch 'origin/spec' into spec