extend-type works with non-constant expressions as its type:
(extend-type (class 1) proto (protof [this]))
However, in this case this will get tagged with
(class 1), which is clearly wrong; the doc explicitely states that the args will be proberly type-hinted: "(link: ..) Propagates the class as a type hint on the first argument of all fns."
I don't know if extend-type is not supposed to work with non-constant Classes, in which case it should be stated in the doc or if the current behaviour is wrong.