Resolve Java interoperability based on static type information

Description

Problem

Static type information can inform the Clojure compiler of non-reflective
Java interop. With the typed REPL, we now have a means to communicate this
information.

Approach

tools.analyzer.jvm returns :host-interop nodes for unresolved interop.
We first generate type hints based on the static types of the target/argument/
expected type, then passed the type-hinted AST back into the analyzer.

If this doesn't resolve the interop, we throw a type error a usual. If it does,
we type check as usual.

Pull request:

Commit: db3a3

Environment

None

Activity

Show:
Completed

Details

Assignee

Reporter

Components

Fix versions

Priority

Created July 21, 2015 at 1:34 PM
Updated December 3, 2017 at 11:08 PM
Resolved December 3, 2017 at 11:08 PM