@dnolen closure compiler v20250402 is out and as usual has a bunch of breaking changes. one is JsAst being rolled into CompilerInput. this breaks here https://github.com/clojure/clojurescript/blob/master/src/main/clojure/cljs/externs.clj#L241, but can be fixed by simply renaming accordingly. another is this property being gone https://github.com/clojure/clojurescript/blob/master/src/main/clojure/cljs/closure.clj#L197
too tired to dig deeper. I bet there is more though.
there wasn't in cljs itself. shadow-cljs had a lot more but got everything working
diff --git a/src/main/clojure/cljs/closure.clj b/src/main/clojure/cljs/closure.clj
index 28faeb04..b215573f 100644
--- a/src/main/clojure/cljs/closure.clj
+++ b/src/main/clojure/cljs/closure.clj
@@ -194,7 +194,6 @@
:underscore DiagnosticGroups/UNDERSCORE
:unknown-defines DiagnosticGroups/UNKNOWN_DEFINES
:unused-local-variable DiagnosticGroups/UNUSED_LOCAL_VARIABLE
- :unused-private-property DiagnosticGroups/UNUSED_PRIVATE_PROPERTY
:violated-module-dep DiagnosticGroups/VIOLATED_MODULE_DEP
:visibility DiagnosticGroups/VISIBILITY})
diff --git a/src/main/clojure/cljs/externs.clj b/src/main/clojure/cljs/externs.clj
index 910643b4..c5343e1b 100644
--- a/src/main/clojure/cljs/externs.clj
+++ b/src/main/clojure/cljs/externs.clj
@@ -12,7 +12,7 @@
[ :as io]
[clojure.string :as string])
(:import [com.google.javascript.jscomp
- CompilerOptions CompilerOptions$Environment SourceFile JsAst CommandLineRunner]
+ CompilerOptions CompilerOptions$Environment SourceFile CompilerInput CommandLineRunner]
[com.google.javascript.jscomp.parsing Config$JsDocParsing]
[com.google.javascript.rhino
Node Token JSTypeExpression JSDocInfo$Visibility]
@@ -238,7 +238,7 @@
(com.google.javascript.jscomp.Compiler/setLoggingLevel Level/WARNING)
compiler)
(.init (list source-file) '() compiler-options))
- js-ast (JsAst. source-file)
+ js-ast (CompilerInput. source-file)
^Node root (.getAstRoot js-ast closure-compiler)
;; TODO: switch to getFirstChild + getNext in the loop
nodes (.children root)] @dnolen how do you feel about updating CLJS? the new closure does require java21+
I'm fine w/ that