File tree Expand file tree Collapse file tree 2 files changed +12
-5
lines changed
src/main/clojure/clojure/tools/analyzer/passes/jvm Expand file tree Collapse file tree 2 files changed +12
-5
lines changed Original file line number Diff line number Diff line change 122122 `(new ~(-emit-form* class opts) ~@(mapv #(-emit-form* % opts) args))))
123123
124124(defmethod -emit-form :static-field
125- [{:keys [class field]} opts]
126- `(~(symbol (class->str class) (name field))))
125+ [{:keys [class field overloaded-field?]} opts]
126+ (if overloaded-field?
127+ `(. ~(class->sym class) ~(symbol (str " -" (name field))))
128+ (list (symbol (class->str class) (name field)))))
127129
128130(defmethod -emit-form :static-call
129131 [{:keys [class method args param-tags]} opts]
Original file line number Diff line number Diff line change 175175 (validate-call (assoc ast :class (u/maybe-class (:class ast))))))
176176
177177(defmethod -validate :static-field
178- [ast]
179- (if ( : validated? ast)
178+ [{ :keys [class validated? field] :as ast} ]
179+ (if validated?
180180 ast
181- (assoc ast :class (u/maybe-class (:class ast)))))
181+ (let [class (u/maybe-class class)
182+ overloaded-field? (boolean (some :return-type (u/static-members class field)))]
183+ (assoc ast
184+ :overloaded-field? overloaded-field?
185+ :class class
186+ :validated? true ))))
182187
183188(defmethod -validate :instance-call
184189 [{:keys [class validated? instance] :as ast}]
You can’t perform that action at this time.
0 commit comments