Search for .cljc files when checking a namespace

Description

Currently core.typed assumes that Clojure files end with a .clj extension and ClojureScript files with .cljs. However, due to the introduction of reader conditionals to the language the .cljc extension is now valid for both Clojure and ClojureScript. core.typed should look for .cljc files in addition to .clj and .cljs.

The problem originates in the clojure.core.typed.coerce-utils namespace's ns->file function, since it hardcodes the .clj and .cljs extensions for finding Clojure and ClojureScript namespaces. When using this function from clojure.core.typed.analyze-clj namespace's ast-for-ns function it throws an exception.

Pull request: 58

Commits: 8dd3099 81aa140

Version: 0.3.12

Environment

None

Activity

Show:
Alejandro
June 25, 2015, 3:38 PM

Since the current version of tools.analyzer.jvm that core.typed depends on doesn't support .cljc files the patch can't be applied yet.

Ambrose Bonnaire-Sergeant
July 19, 2015, 5:16 PM

The latest tools.analyzer.jvm is inlined at clojure.core.typed.deps.clojure.tools.analyzer.jvm (see project.clj for the version).

Can this now move forward?

import
August 31, 2015, 7:47 PM

Comment made by: btobolaski

I see that there is a pull request for this on GitHub but it doesn't appear to have been merged onto master yet. Is this waiting on anything in particular?

Ambrose Bonnaire-Sergeant
August 31, 2015, 8:18 PM

I'd merge if there was a test.

Piotr Jarzemski
September 24, 2015, 8:18 PM

I created a basic set of unit tests for this issue (https://github.com/typedclojure/core.typed/pull/63). If that's not enough or if they aren't matching your requirements, please let me know.

Assignee

Alejandro

Reporter

Alejandro

Labels

Approval

None

Patch

Code

Components

Fix versions

Priority

Minor
Configure