From a4160e9934809c99ef5639e9ec6d321f2eca2373 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Fri, 13 Nov 2020 01:28:36 +0300 Subject: [PATCH] tests: process all jars in configured libs --- testData/highlighting/ClojureLang.txt | 250 +++++++++++++--- testData/highlighting/ClojureScript.txt | 379 +++++++++++++----------- tests/lang/language-tests.kt | 51 +++- tests/lang/test-util.kt | 58 ++-- 4 files changed, 480 insertions(+), 258 deletions(-) diff --git a/testData/highlighting/ClojureLang.txt b/testData/highlighting/ClojureLang.txt index 305b836..8936780 100644 --- a/testData/highlighting/ClojureLang.txt +++ b/testData/highlighting/ClojureLang.txt @@ -1,4 +1,4 @@ -/clojure/core.clj 0 errors, 8 warnings, 13 dynamic +clojure/core.clj 0 errors, 8 warnings, 13 dynamic 125325: unable to resolve 'setInt' 125464: unable to resolve 'setLong' 125611: unable to resolve 'setBoolean' @@ -20,12 +20,12 @@ 192159: dynamic 'hasRoot' 235552: dynamic 'getProperty' 236084: dynamic 'contains' -/clojure/core/protocols.clj 0 errors, 0 warnings, 0 dynamic -/clojure/core/reducers.clj 0 errors, 0 warnings, 0 dynamic -/clojure/core/server.clj 0 errors, 0 warnings, 2 dynamic +clojure/core/protocols.clj 0 errors, 0 warnings, 0 dynamic +clojure/core/reducers.clj 0 errors, 0 warnings, 0 dynamic +clojure/core/server.clj 0 errors, 0 warnings, 2 dynamic 1241: dynamic 'lock' 1306: dynamic 'unlock' -/clojure/core_deftype.clj 0 errors, 0 warnings, 14 dynamic +clojure/core_deftype.clj 0 errors, 0 warnings, 14 dynamic 7714: dynamic 'valAt' 9670: dynamic 'valAt' 9746: dynamic 'valAt' @@ -40,33 +40,33 @@ 28461: dynamic 'sym' 28486: dynamic 'sym' 28534: dynamic 'sym' -/clojure/core_print.clj 0 errors, 0 warnings, 0 dynamic -/clojure/core_proxy.clj 0 errors, 0 warnings, 1 dynamic +clojure/core_print.clj 0 errors, 0 warnings, 0 dynamic +clojure/core_proxy.clj 0 errors, 0 warnings, 1 dynamic 11517: dynamic 'getModifiers' -/clojure/data.clj 0 errors, 0 warnings, 0 dynamic -/clojure/datafy.clj 0 errors, 0 warnings, 0 dynamic -/clojure/edn.clj 0 errors, 0 warnings, 0 dynamic -/clojure/genclass.clj 0 errors, 0 warnings, 2 dynamic +clojure/data.clj 0 errors, 0 warnings, 0 dynamic +clojure/datafy.clj 0 errors, 0 warnings, 0 dynamic +clojure/edn.clj 0 errors, 0 warnings, 0 dynamic +clojure/genclass.clj 0 errors, 0 warnings, 2 dynamic 29531: dynamic 'replace' 33015: dynamic 'defineClass' -/clojure/gvec.clj 0 errors, 0 warnings, 0 dynamic -/clojure/inspector.clj 0 errors, 0 warnings, 0 dynamic -/clojure/instant.clj 0 errors, 0 warnings, 0 dynamic -/clojure/java/browse.clj 0 errors, 0 warnings, 1 dynamic +clojure/gvec.clj 0 errors, 0 warnings, 0 dynamic +clojure/inspector.clj 0 errors, 0 warnings, 0 dynamic +clojure/instant.clj 0 errors, 0 warnings, 0 dynamic +clojure/java/browse.clj 0 errors, 0 warnings, 1 dynamic 1956: dynamic 'browse' -/clojure/java/browse_ui.clj 0 errors, 0 warnings, 1 dynamic +clojure/java/browse_ui.clj 0 errors, 0 warnings, 1 dynamic 1134: dynamic 'processHTMLFrameHyperlinkEvent' -/clojure/java/io.clj 0 errors, 0 warnings, 0 dynamic -/clojure/java/javadoc.clj 0 errors, 0 warnings, 0 dynamic -/clojure/java/shell.clj 0 errors, 0 warnings, 0 dynamic -/clojure/main.clj 0 errors, 0 warnings, 6 dynamic +clojure/java/io.clj 0 errors, 0 warnings, 0 dynamic +clojure/java/javadoc.clj 0 errors, 0 warnings, 0 dynamic +clojure/java/shell.clj 0 errors, 0 warnings, 0 dynamic +clojure/main.clj 0 errors, 0 warnings, 6 dynamic 4778: dynamic 'read' 4878: dynamic 'unread' 5464: dynamic 'read' 5573: dynamic 'readLine' 5666: dynamic 'read' 5692: dynamic 'unread' -/clojure/parallel.clj 0 errors, 11 warnings, 23 dynamic +clojure/parallel.clj 0 errors, 11 warnings, 23 dynamic 2317: unable to resolve 'Ops$Op' 2381: unable to resolve 'Ops$BinaryOp' 2470: unable to resolve 'Ops$IntAndObjectToObject' @@ -101,8 +101,8 @@ 7231: dynamic 'precumulate' 7651: dynamic 'removeNulls' 7828: dynamic 'removeConsecutiveDuplicates' -/clojure/pprint.clj 0 errors, 0 warnings, 0 dynamic -/clojure/pprint/cl_format.clj 0 errors, 24 warnings, 0 dynamic +clojure/pprint.clj 0 errors, 0 warnings, 0 dynamic +clojure/pprint/cl_format.clj 0 errors, 24 warnings, 0 dynamic 56082: unable to resolve 'params' 56150: unable to resolve 'params' 56166: unable to resolve 'params' @@ -127,8 +127,8 @@ 62153: unable to resolve 'params' 62220: unable to resolve 'params' 62290: unable to resolve 'params' -/clojure/pprint/column_writer.clj 0 errors, 0 warnings, 0 dynamic -/clojure/pprint/dispatch.clj 0 errors, 11 warnings, 4 dynamic +clojure/pprint/column_writer.clj 0 errors, 0 warnings, 0 dynamic +clojure/pprint/dispatch.clj 0 errors, 11 warnings, 4 dynamic 3405: unable to resolve 'aseq' 3434: unable to resolve 'aseq' 3458: unable to resolve 'aseq' @@ -144,10 +144,10 @@ 19740: dynamic 'substring' 19917: dynamic 'col_write' 20241: dynamic 'col_write' -/clojure/pprint/pprint_base.clj 0 errors, 2 warnings, 0 dynamic +clojure/pprint/pprint_base.clj 0 errors, 2 warnings, 0 dynamic 15091: unable to resolve 'walk' 15151: unable to resolve 'walk' -/clojure/pprint/pretty_writer.clj 0 errors, 10 warnings, 0 dynamic +clojure/pprint/pretty_writer.clj 0 errors, 10 warnings, 0 dynamic 7284: unable to resolve 'nl-t?' 7642: unable to resolve 'nl-t?' 8486: unable to resolve 'nl-t?' @@ -158,30 +158,192 @@ 16553: unable to resolve 'make-end-block-t' 16756: unable to resolve 'make-nl-t' 17205: unable to resolve 'make-indent-t' -/clojure/pprint/print_table.clj 0 errors, 0 warnings, 0 dynamic -/clojure/pprint/utilities.clj 0 errors, 0 warnings, 0 dynamic -/clojure/reflect.clj 0 errors, 0 warnings, 0 dynamic -/clojure/reflect/java.clj 0 errors, 0 warnings, 0 dynamic -/clojure/repl.clj 0 errors, 0 warnings, 6 dynamic +clojure/pprint/print_table.clj 0 errors, 0 warnings, 0 dynamic +clojure/pprint/utilities.clj 0 errors, 0 warnings, 0 dynamic +clojure/reflect.clj 0 errors, 0 warnings, 0 dynamic +clojure/reflect/java.clj 0 errors, 0 warnings, 0 dynamic +clojure/repl.clj 0 errors, 0 warnings, 6 dynamic 912: dynamic 'instanceMember' 960: dynamic 'instanceMember' 2986: dynamic 'instanceFieldName-symbol' 3061: dynamic 'staticFieldName-symbol' 10949: dynamic 'getClassName' 11607: dynamic 'stop' -/clojure/set.clj 0 errors, 0 warnings, 0 dynamic -/clojure/stacktrace.clj 0 errors, 0 warnings, 0 dynamic -/clojure/string.clj 0 errors, 0 warnings, 0 dynamic -/clojure/template.clj 0 errors, 0 warnings, 0 dynamic -/clojure/test.clj 0 errors, 0 warnings, 1 dynamic +clojure/set.clj 0 errors, 0 warnings, 0 dynamic +clojure/stacktrace.clj 0 errors, 0 warnings, 0 dynamic +clojure/string.clj 0 errors, 0 warnings, 0 dynamic +clojure/template.clj 0 errors, 0 warnings, 0 dynamic +clojure/test.clj 0 errors, 0 warnings, 1 dynamic 18220: dynamic 'getMessage' -/clojure/test/junit.clj 0 errors, 0 warnings, 3 dynamic +clojure/test/junit.clj 0 errors, 0 warnings, 3 dynamic 2361: dynamic 'lastIndexOf' 2426: dynamic 'substring' 2448: dynamic 'substring' -/clojure/test/tap.clj 0 errors, 0 warnings, 0 dynamic -/clojure/uuid.clj 0 errors, 0 warnings, 0 dynamic -/clojure/walk.clj 0 errors, 0 warnings, 0 dynamic -/clojure/xml.clj 0 errors, 0 warnings, 0 dynamic -/clojure/zip.clj 0 errors, 0 warnings, 0 dynamic -Total: 66 warnings, 77 dynamic in 43 files (757.48 kB) \ No newline at end of file +clojure/test/tap.clj 0 errors, 0 warnings, 0 dynamic +clojure/uuid.clj 0 errors, 0 warnings, 0 dynamic +clojure/walk.clj 0 errors, 0 warnings, 0 dynamic +clojure/xml.clj 0 errors, 0 warnings, 0 dynamic +clojure/zip.clj 0 errors, 0 warnings, 0 dynamic +clojure/core/specs/alpha.clj 0 errors, 0 warnings, 0 dynamic +clojure/spec/alpha.clj 0 errors, 42 warnings, 0 dynamic + 8754: unable to resolve 'such-that' + 28589: unable to resolve 'return' + 28876: unable to resolve 'bind' + 28886: unable to resolve 'tuple' + 28911: unable to resolve 'choose' + 28958: unable to resolve 'shuffle' + 29036: unable to resolve 'tuple' + 29176: unable to resolve 'tuple' + 32414: unable to resolve 'bind' + 32439: unable to resolve 'tuple' + 32976: unable to resolve 'hash-map' + 36237: unable to resolve 'fmap' + 36659: unable to resolve 'one-of' + 39216: unable to resolve 'tuple' + 42174: unable to resolve 'one-of' + 45246: unable to resolve 'fmap' + 45305: unable to resolve 'tuple' + 46367: unable to resolve 'empty-coll' + 46935: unable to resolve 'empty-coll' + 51000: unable to resolve 'bind' + 51064: unable to resolve 'return' + 51111: unable to resolve 'fmap' + 51251: unable to resolve 'return' + 51319: unable to resolve 'fmap' + 51506: unable to resolve 'vector-distinct' + 51595: unable to resolve 'vector-distinct' + 51902: unable to resolve 'vector' + 52000: unable to resolve 'vector' + 52148: unable to resolve 'vector' + 62928: unable to resolve 'fmap' + 63130: unable to resolve 'return' + 63175: unable to resolve 'return' + 63288: unable to resolve 'fmap' + 63695: unable to resolve 'one-of' + 63800: unable to resolve 'return' + 63922: unable to resolve 'fmap' + 63988: unable to resolve 'vector' + 68530: unable to resolve 'return' + 71303: unable to resolve 'frequency' + 71348: unable to resolve 'return' + 72055: unable to resolve 'sample' + 72590: unable to resolve 'sample' +clojure/spec/gen/alpha.clj 0 errors, 116 warnings, 0 dynamic + 639: unable to resolve 'string' + 646: unable to resolve 'uuid' + 3208: unable to resolve 'hash-map' + 3217: unable to resolve 'list' + 3222: unable to resolve 'map' + 3226: unable to resolve 'not-empty' + 3236: unable to resolve 'set' + 3240: unable to resolve 'vector' + 3247: unable to resolve 'vector-distinct' + 3263: unable to resolve 'fmap' + 3268: unable to resolve 'elements' + 3295: unable to resolve 'bind' + 3300: unable to resolve 'choose' + 3307: unable to resolve 'fmap' + 3312: unable to resolve 'one-of' + 3319: unable to resolve 'such-that' + 3329: unable to resolve 'tuple' + 3335: unable to resolve 'sample' + 3342: unable to resolve 'return' + 3367: unable to resolve 'large-integer*' + 3382: unable to resolve 'double*' + 3390: unable to resolve 'frequency' + 3400: unable to resolve 'shuffle' + 3890: unable to resolve 'any' + 3894: unable to resolve 'any-printable' + 3927: unable to resolve 'char-alpha' + 3938: unable to resolve 'char-alphanumeric' + 3956: unable to resolve 'char-ascii' + 3990: unable to resolve 'keyword' + 3998: unable to resolve 'keyword-ns' + 4009: unable to resolve 'large-integer' + 4023: unable to resolve 'ratio' + 4029: unable to resolve 'simple-type' + 4041: unable to resolve 'simple-type-printable' + 4075: unable to resolve 'string' + 4082: unable to resolve 'string-ascii' + 4095: unable to resolve 'string-alphanumeric' + 4115: unable to resolve 'symbol' + 4122: unable to resolve 'symbol-ns' + 4132: unable to resolve 'uuid' + 4285: unable to resolve 'fmap' + 4323: unable to resolve 'tuple' + 4455: unable to resolve 'simple-type-printable' + 4491: unable to resolve 'one-of' + 4500: unable to resolve 'return' + 4513: unable to resolve 'any-printable' + 4543: unable to resolve 'such-that' + 4560: unable to resolve 'any-printable' + 4591: unable to resolve 'one-of' + 4600: unable to resolve 'large-integer' + 4642: unable to resolve 'large-integer' + 4669: unable to resolve 'large-integer' + 4700: unable to resolve 'large-integer*' + 4741: unable to resolve 'large-integer*' + 4783: unable to resolve 'large-integer*' + 4893: unable to resolve 'string-alphanumeric' + 4928: unable to resolve 'one-of' + 4937: unable to resolve 'keyword-ns' + 4950: unable to resolve 'symbol-ns' + 4984: unable to resolve 'one-of' + 4993: unable to resolve 'keyword' + 5003: unable to resolve 'symbol' + 5037: unable to resolve 'such-that' + 5059: unable to resolve 'one-of' + 5068: unable to resolve 'keyword-ns' + 5081: unable to resolve 'symbol-ns' + 5111: unable to resolve 'keyword-ns' + 5146: unable to resolve 'keyword' + 5181: unable to resolve 'such-that' + 5203: unable to resolve 'keyword-ns' + 5231: unable to resolve 'symbol-ns' + 5264: unable to resolve 'symbol' + 5297: unable to resolve 'such-that' + 5319: unable to resolve 'symbol-ns' + 5344: unable to resolve 'uuid' + 5362: unable to resolve 'fmap' + 5416: unable to resolve 'uuid' + 5439: unable to resolve 'fmap' + 5489: unable to resolve 'double*' + 5543: unable to resolve 'fmap' + 5588: unable to resolve 'large-integer' + 5620: unable to resolve 'one-of' + 5629: unable to resolve 'return' + 5666: unable to resolve 'list' + 5704: unable to resolve 'vector' + 5744: unable to resolve 'map' + 5788: unable to resolve 'set' + 5825: unable to resolve 'string-alphanumeric' + 5864: unable to resolve 'vector' + 5891: unable to resolve 'map' + 5925: unable to resolve 'vector' + 5953: unable to resolve 'list' + 5978: unable to resolve 'list' + 6022: unable to resolve 'set' + 6046: unable to resolve 'return' + 6072: unable to resolve 'return' + 6099: unable to resolve 'return' + 6125: unable to resolve 'return' + 6152: unable to resolve 'one-of' + 6161: unable to resolve 'large-integer' + 6177: unable to resolve 'ratio' + 6199: unable to resolve 'one-of' + 6208: unable to resolve 'map' + 6249: unable to resolve 'list' + 6284: unable to resolve 'vector' + 6321: unable to resolve 'set' + 6349: unable to resolve 'elements' + 6399: unable to resolve 'one-of' + 6408: unable to resolve 'map' + 6428: unable to resolve 'vector' + 6464: unable to resolve 'one-of' + 6473: unable to resolve 'list' + 6487: unable to resolve 'vector' + 6518: unable to resolve 'such-that' + 6536: unable to resolve 'ratio' + 6688: unable to resolve 'elements' +clojure/spec/test/alpha.clj 0 errors, 0 warnings, 0 dynamic +Total: 224 warnings, 77 dynamic in 47 files (865.07 kB) \ No newline at end of file diff --git a/testData/highlighting/ClojureScript.txt b/testData/highlighting/ClojureScript.txt index 0067efc..3b17fee 100644 --- a/testData/highlighting/ClojureScript.txt +++ b/testData/highlighting/ClojureScript.txt @@ -1,4 +1,13 @@ -/cljs/analyzer.cljc 0 errors, 20 warnings, 24 dynamic +cognitect/transit.clj 0 errors, 5 warnings, 3 dynamic + 5944: unable to resolve 'fromRep' + 6195: unable to resolve 'fromRep' + 6890: unable to resolve 'fromRep' + 7167: unable to resolve 'fromRep' + 7481: unable to resolve 'fromRep' + 13717: dynamic 'x' + 13724: dynamic 'y' + 13791: dynamic 'r' +cljs/analyzer.cljc 0 errors, 7 warnings, 24 dynamic 604: unable to resolve 'ensure' 149016: unable to resolve 'info' 149193: unable to resolve 'info' @@ -6,19 +15,6 @@ 149339: unable to resolve 'info' 149374: unable to resolve 'info' 149452: unable to resolve 'info' - 169581: unable to resolve 'indexing-push-back-reader' - 169894: unable to resolve '*data-readers*' - 169966: unable to resolve '*alias-map*' - 170214: unable to resolve 'resolve-symbol' - 170282: unable to resolve 'read' - 170921: unable to resolve 'indexing-push-back-reader' - 171279: unable to resolve '*data-readers*' - 171351: unable to resolve '*alias-map*' - 171593: unable to resolve 'read' - 186658: unable to resolve '*alias-map*' - 186681: unable to resolve '*alias-map*' - 189215: unable to resolve '*alias-map*' - 189238: unable to resolve '*alias-map*' 18789: dynamic 'toString' 18800: dynamic 'charCodeAt' 18848: dynamic '-length' @@ -29,24 +25,16 @@ 156155: dynamic 'charAt' 156461: dynamic 'charAt' 156490: dynamic '-length' -/cljs/analyzer/api.cljc 0 errors, 0 warnings, 0 dynamic -/cljs/analyzer/macros.clj 0 errors, 0 warnings, 1 dynamic +cljs/analyzer/api.cljc 0 errors, 0 warnings, 0 dynamic +cljs/analyzer/macros.clj 0 errors, 0 warnings, 1 dynamic 1801: dynamic 'message' -/cljs/analyzer/utils.clj 0 errors, 0 warnings, 0 dynamic -/cljs/build/api.clj 0 errors, 0 warnings, 0 dynamic -/cljs/cli.clj 0 errors, 0 warnings, 3 dynamic +cljs/analyzer/utils.clj 0 errors, 0 warnings, 0 dynamic +cljs/build/api.clj 0 errors, 0 warnings, 0 dynamic +cljs/cli.clj 0 errors, 0 warnings, 3 dynamic 3124: dynamic 'length' 11602: dynamic 'exists' 12525: dynamic 'exists' -/cljs/closure.clj 0 errors, 8 warnings, 43 dynamic - 62592: unable to resolve 'read-str' - 69334: unable to resolve 'write-str' - 75708: unable to resolve 'read-str' - 77044: unable to resolve 'write-str' - 110034: unable to resolve 'read-str' - 112427: unable to resolve 'read-str' - 120965: unable to resolve 'input-stream-push-back-reader' - 121085: unable to resolve 'read' +cljs/closure.clj 0 errors, 0 warnings, 40 dynamic 2873: dynamic 'getCanonicalPath' 16606: dynamic 'setOptionsForCompilationLevel' 18132: dynamic 'getFile' @@ -70,11 +58,8 @@ 83982: dynamic 'getName' 84814: dynamic 'toURI' 85102: dynamic 'getPath' - 85299: dynamic 'setGoogModule' - 85320: dynamic 'build' 85756: dynamic 'indexOf' 85837: dynamic 'indexOf' - 85972: dynamic 'compile' 92551: dynamic 'getResources' 105704: dynamic 'exitValue' 112277: dynamic 'getAbsolutePath' @@ -90,12 +75,8 @@ 142458: dynamic 'watchable' 146668: dynamic 'isFile' 146687: dynamic 'delete' -/cljs/compiler.cljc 0 errors, 5 warnings, 28 dynamic +cljs/compiler.cljc 0 errors, 1 warnings, 28 dynamic 604: unable to resolve 'ensure' - 53451: unable to resolve 'write-str' - 53498: unable to resolve 'read-str' - 55255: unable to resolve '*alias-map*' - 55281: unable to resolve '*alias-map*' 1909: dynamic 'StringBuffer' 5833: dynamic 'toString' 5897: dynamic 'length' @@ -104,9 +85,9 @@ 56138: dynamic 'execute' 57942: dynamic 'shutdown' 57989: dynamic 'awaitTermination' -/cljs/compiler/api.clj 0 errors, 0 warnings, 0 dynamic -/cljs/compiler/macros.clj 0 errors, 0 warnings, 0 dynamic -/cljs/core.cljc 0 errors, 7 warnings, 58 dynamic +cljs/compiler/api.clj 0 errors, 0 warnings, 0 dynamic +cljs/compiler/macros.clj 0 errors, 0 warnings, 0 dynamic +cljs/core.cljc 0 errors, 7 warnings, 58 dynamic 555: unable to resolve 'assert-args' 1982: unable to resolve 'unchecked-divide' 2842: unable to resolve 'alias' @@ -155,16 +136,8 @@ 137090: dynamic 'slice' 141847: dynamic '-cljs$lang$macro' 143846: dynamic '-cljs$lang$macro' -/cljs/core.cljs 0 errors, 19 warnings, 864 dynamic +cljs/core.cljs 0 errors, 19 warnings, 864 dynamic 33056: unable to resolve 'cljs.core.Var' - 62372: unable to resolve 'goog.math.Integer' - 62410: unable to resolve 'goog.math.Long' - 62555: unable to resolve 'goog.math.Integer' - 62651: unable to resolve 'goog.math.Long' - 62881: unable to resolve 'goog.math.Integer' - 62938: unable to resolve 'goog.math.Long' - 63145: unable to resolve 'goog.math.Integer' - 63208: unable to resolve 'goog.math.Long' 104285: unable to resolve 'apply-to' 104609: unable to resolve 'apply-to' 104951: unable to resolve 'apply-to' @@ -174,7 +147,6 @@ 261933: unable to resolve 'res' 261979: unable to resolve 'res' 261993: unable to resolve 'i' - 333946: unable to resolve 'goog.Uri' 695: dynamic 'StringBuffer' 6252: dynamic 'apply' 6261: dynamic 'log' @@ -796,25 +768,17 @@ 334478: dynamic 'join' 334520: dynamic 'println' 334531: dynamic 'error' -/cljs/core/macros.clj 0 errors, 3 warnings, 0 dynamic - 1132: unable to resolve 'source-logging-push-back-reader' - 1222: unable to resolve 'read-line' - 1260: unable to resolve 'read' -/cljs/core/server.clj 0 errors, 8 warnings, 0 dynamic +cljs/core/macros.clj 0 errors, 0 warnings, 0 dynamic +cljs/core/server.clj 0 errors, 3 warnings, 0 dynamic 527: unable to resolve 'resolve-fn' 538: unable to resolve 'prepl' 544: unable to resolve 'io-prepl' - 3698: unable to resolve 'resolve-symbol' - 3794: unable to resolve '*data-readers*' - 3896: unable to resolve '*alias-map*' - 4218: unable to resolve 'read+string' - 6646: unable to resolve 'source-logging-push-back-reader' -/cljs/core/specs/alpha.cljc 0 errors, 1 warnings, 0 dynamic +cljs/core/specs/alpha.cljc 0 errors, 1 warnings, 0 dynamic 6567: unable to resolve 'ns-special-form' -/cljs/core/specs/alpha.cljs 0 errors, 0 warnings, 0 dynamic -/cljs/env.cljc 0 errors, 0 warnings, 0 dynamic -/cljs/env/macros.clj 0 errors, 0 warnings, 0 dynamic -/cljs/externs.clj 0 errors, 0 warnings, 22 dynamic +cljs/core/specs/alpha.cljs 0 errors, 0 warnings, 0 dynamic +cljs/env.cljc 0 errors, 0 warnings, 0 dynamic +cljs/env/macros.clj 0 errors, 0 warnings, 0 dynamic +cljs/externs.clj 0 errors, 0 warnings, 22 dynamic 2499: dynamic 'isConstructor' 2561: dynamic 'isInterface' 3806: dynamic 'getChildCount' @@ -837,33 +801,17 @@ 6297: dynamic 'init' 10389: dynamic 'getName' 10592: dynamic 'getName' -/cljs/js.clj 0 errors, 0 warnings, 0 dynamic -/cljs/js.cljs 0 errors, 28 warnings, 47 dynamic - 2001: unable to resolve 'read' +cljs/js.clj 0 errors, 0 warnings, 0 dynamic +cljs/js.cljs 0 errors, 12 warnings, 47 dynamic 4412: unable to resolve 'default-compiler-env' 9423: unable to resolve 'default-compiler-env' 25887: unable to resolve '*compiler*' 26714: unable to resolve '*compiler*' - 29814: unable to resolve 'indexing-push-back-reader' 30214: unable to resolve '*compiler*' - 30650: unable to resolve '*alias-map*' - 30731: unable to resolve '*data-readers*' - 30800: unable to resolve 'resolve-symbol' 35764: unable to resolve '*compiler*' - 36222: unable to resolve '*alias-map*' - 36321: unable to resolve '*data-readers*' - 36387: unable to resolve 'resolve-symbol' - 41041: unable to resolve 'indexing-push-back-reader' 41467: unable to resolve '*compiler*' - 41904: unable to resolve '*alias-map*' - 41985: unable to resolve '*data-readers*' - 42054: unable to resolve 'resolve-symbol' 44512: unable to resolve '*compiler*' - 47701: unable to resolve 'indexing-push-back-reader' 48270: unable to resolve '*compiler*' - 48707: unable to resolve '*alias-map*' - 48788: unable to resolve '*data-readers*' - 48857: unable to resolve 'resolve-symbol' 51863: unable to resolve '*compiler*' 52352: unable to resolve '*compiler*' 57406: unable to resolve '*compiler*' @@ -900,9 +848,8 @@ 61351: dynamic '-stack' 61779: dynamic '-cause' 61786: dynamic '-stack' -/cljs/js_deps.cljc 0 errors, 1 warnings, 0 dynamic - 13412: unable to resolve 'read-str' -/cljs/loader.cljs 0 errors, 0 warnings, 21 dynamic +cljs/js_deps.cljc 0 errors, 0 warnings, 0 dynamic +cljs/loader.cljs 0 errors, 0 warnings, 21 dynamic 592: dynamic 'ModuleLoader' 630: dynamic 'ModuleManager' 1094: dynamic 'legacy/trustedResourceUrlFromString' @@ -919,16 +866,16 @@ 2907: dynamic 'getModuleInfo' 3493: dynamic 'isModuleLoading' 3543: dynamic 'prefetchModule' -/cljs/main.clj 0 errors, 0 warnings, 0 dynamic -/cljs/module_graph.cljc 0 errors, 0 warnings, 0 dynamic -/cljs/nodejs.cljs 0 errors, 0 warnings, 8 dynamic +cljs/main.clj 0 errors, 0 warnings, 0 dynamic +cljs/module_graph.cljc 0 errors, 0 warnings, 0 dynamic +cljs/nodejs.cljs 0 errors, 0 warnings, 8 dynamic 915: dynamic 'apply' 924: dynamic 'log' 1018: dynamic 'apply' 1027: dynamic 'error' -/cljs/nodejscli.cljs 0 errors, 0 warnings, 5 dynamic -/cljs/pprint.cljc 0 errors, 0 warnings, 0 dynamic -/cljs/pprint.cljs 0 errors, 44 warnings, 148 dynamic +cljs/nodejscli.cljs 0 errors, 0 warnings, 5 dynamic +cljs/pprint.cljc 0 errors, 0 warnings, 0 dynamic +cljs/pprint.cljs 0 errors, 44 warnings, 148 dynamic 11722: unable to resolve 'nl-t?' 12077: unable to resolve 'nl-t?' 12869: unable to resolve 'nl-t?' @@ -1015,42 +962,16 @@ 124833: dynamic 'substring' 125017: dynamic 'col_write' 125349: dynamic 'col_write' -/cljs/reader.clj 0 errors, 0 warnings, 0 dynamic -/cljs/reader.cljs 0 errors, 6 warnings, 19 dynamic +cljs/reader.clj 0 errors, 0 warnings, 0 dynamic +cljs/reader.cljs 0 errors, 1 warnings, 19 dynamic 3859: unable to resolve 'PersistentQueue.EMPTY' - 5679: unable to resolve 'read' - 5826: unable to resolve 'read' - 5992: unable to resolve 'read' - 6383: unable to resolve 'read-string' - 6504: unable to resolve 'read-string' 691: dynamic 'StringBuffer' 895: dynamic 'getLength' 932: dynamic 'append' 957: dynamic 'toString' 3463: dynamic 'UTC' 4081: dynamic 'push' -/cljs/repl.cljc 0 errors, 21 warnings, 13 dynamic - 2487: unable to resolve 'read-char' - 2581: unable to resolve 'unread' - 3174: unable to resolve 'read-char' - 3271: unable to resolve 'read-line' - 3381: unable to resolve 'read-char' - 3416: unable to resolve 'unread' - 4423: unable to resolve 'read' - 4548: unable to resolve 'unread' - 4575: unable to resolve 'read-char' - 11477: unable to resolve 'read-str' - 39972: unable to resolve 'indexing-reader?' - 40040: unable to resolve 'get-column-number' - 40439: unable to resolve 'source-logging-push-back-reader' - 45083: unable to resolve 'resolve-symbol' - 45163: unable to resolve '*data-readers*' - 45249: unable to resolve '*alias-map*' - 62288: unable to resolve 'source-logging-push-back-reader' - 62378: unable to resolve 'read-line' - 62425: unable to resolve '*alias-map*' - 62480: unable to resolve '*data-readers*' - 62549: unable to resolve 'read' +cljs/repl.cljc 0 errors, 0 warnings, 13 dynamic 12888: dynamic 'startsWith' 13506: dynamic 'getCanonicalFile' 15814: dynamic 'startsWith' @@ -1062,9 +983,9 @@ 52607: dynamic 'instanceMethod' 52656: dynamic 'instanceField' 64988: dynamic 'stack' -/cljs/repl.cljs 0 errors, 0 warnings, 3 dynamic +cljs/repl.cljs 0 errors, 0 warnings, 3 dynamic 2861: dynamic 'name' -/cljs/repl/bootstrap.clj 0 errors, 0 warnings, 11 dynamic +cljs/repl/bootstrap.clj 0 errors, 0 warnings, 11 dynamic 966: dynamic 'isProvided__' 1073: dynamic 'isProvided_' 1205: dynamic 'require__' @@ -1076,19 +997,14 @@ 1810: dynamic 'written_' 2290: dynamic 'require__' 2381: dynamic 'cljsReloadAll_' -/cljs/repl/browser.clj 0 errors, 2 warnings, 6 dynamic - 3029: unable to resolve 'write-str' - 7893: unable to resolve 'write-str' +cljs/repl/browser.clj 0 errors, 0 warnings, 6 dynamic 5549: dynamic 'lastIndexOf' 8835: dynamic 'startsWith' 9289: dynamic 'clear' 15609: dynamic 'isShutdown' 15644: dynamic 'shutdownNow' 16926: dynamic 'stack' -/cljs/repl/node.clj 0 errors, 3 warnings, 11 dynamic - 2211: unable to resolve 'write-str' - 3248: unable to resolve 'read-str' - 8289: unable to resolve 'write-str' +cljs/repl/node.clj 0 errors, 0 warnings, 11 dynamic 1573: dynamic 'close' 1592: dynamic 'close' 1612: dynamic 'close' @@ -1100,9 +1016,9 @@ 5042: dynamic 'start' 8052: dynamic 'require' 8975: dynamic 'isClosed' -/cljs/repl/reflect.clj 0 errors, 0 warnings, 1 dynamic +cljs/repl/reflect.clj 0 errors, 0 warnings, 1 dynamic 2763: dynamic 'startsWith' -/cljs/repl/server.clj 0 errors, 0 warnings, 19 dynamic +cljs/repl/server.clj 0 errors, 0 warnings, 19 dynamic 1168: dynamic 'isClosed' 2881: dynamic 'readLine' 3009: dynamic 'readLine' @@ -1122,27 +1038,25 @@ 7048: dynamic 'setKeepAlive' 7614: dynamic 'isClosed' 7637: dynamic 'close' -/cljs/server/browser.clj 0 errors, 0 warnings, 0 dynamic -/cljs/server/node.clj 0 errors, 0 warnings, 0 dynamic -/cljs/source_map.clj 0 errors, 2 warnings, 0 dynamic - 11816: unable to resolve 'pprint' - 11900: unable to resolve 'write-str' -/cljs/source_map.cljs 0 errors, 0 warnings, 11 dynamic +cljs/server/browser.clj 0 errors, 0 warnings, 0 dynamic +cljs/server/node.clj 0 errors, 0 warnings, 0 dynamic +cljs/source_map.clj 0 errors, 0 warnings, 0 dynamic +cljs/source_map.cljs 0 errors, 0 warnings, 11 dynamic 9497: dynamic 'valueOf' 10303: dynamic 'stringify' -/cljs/source_map/base64.clj 0 errors, 0 warnings, 0 dynamic -/cljs/source_map/base64.cljs 0 errors, 0 warnings, 2 dynamic -/cljs/source_map/base64_vlq.clj 0 errors, 0 warnings, 0 dynamic -/cljs/source_map/base64_vlq.cljs 0 errors, 0 warnings, 8 dynamic +cljs/source_map/base64.clj 0 errors, 0 warnings, 0 dynamic +cljs/source_map/base64.cljs 0 errors, 0 warnings, 2 dynamic +cljs/source_map/base64_vlq.clj 0 errors, 0 warnings, 0 dynamic +cljs/source_map/base64_vlq.cljs 0 errors, 0 warnings, 8 dynamic 608: dynamic 'StringBuffer' 1335: dynamic 'append' 1489: dynamic 'append' 1622: dynamic 'length' 1796: dynamic 'charAt' 2221: dynamic 'substring' -/cljs/spec/alpha.cljc 0 errors, 1 warnings, 0 dynamic +cljs/spec/alpha.cljc 0 errors, 1 warnings, 0 dynamic 1607: unable to resolve 'str' -/cljs/spec/alpha.cljs 0 errors, 42 warnings, 15 dynamic +cljs/spec/alpha.cljs 0 errors, 42 warnings, 15 dynamic 8791: unable to resolve 'such-that' 10432: unable to resolve 'map-spec' 12523: unable to resolve 'return' @@ -1183,16 +1097,14 @@ 51646: unable to resolve 'frequency' 51688: unable to resolve 'return' 52244: unable to resolve 'sample' - 52696: unable to resolve 'goog.math.Long' - 52804: unable to resolve 'goog.math.Integer' 4503: dynamic 'name' 49073: dynamic 'message' 52729: dynamic 'lessThanOrEqual' 52769: dynamic 'lessThan' 52840: dynamic 'lessThanOrEqual' 52880: dynamic 'lessThan' -/cljs/spec/gen/alpha.cljc 0 errors, 0 warnings, 0 dynamic -/cljs/spec/gen/alpha.cljs 0 errors, 112 warnings, 3 dynamic +cljs/spec/gen/alpha.cljc 0 errors, 0 warnings, 0 dynamic +cljs/spec/gen/alpha.cljs 0 errors, 112 warnings, 3 dynamic 2129: unable to resolve 'hash-map' 2138: unable to resolve 'list' 2143: unable to resolve 'map' @@ -1306,10 +1218,10 @@ 4804: unable to resolve 'vector' 4994: unable to resolve 'elements' 835: dynamic 'Uri' -/cljs/spec/test/alpha.cljc 0 errors, 2 warnings, 0 dynamic +cljs/spec/test/alpha.cljc 0 errors, 2 warnings, 0 dynamic 2191: unable to resolve 'cljs.spec.alpha$macros' 8356: unable to resolve 'cljs.spec.alpha$macros' -/cljs/spec/test/alpha.cljs 0 errors, 0 warnings, 17 dynamic +cljs/spec/test/alpha.cljs 0 errors, 0 warnings, 17 dynamic 1578: dynamic '-location' 1588: dynamic '-host' 1620: dynamic '-location' @@ -1322,20 +1234,20 @@ 3979: dynamic 'cljs$core$IFn$_invoke$arity$variadic' 4561: dynamic 'cljs$core$IFn$_invoke$arity$variadic' 4619: dynamic 'cljs$core$IFn$_invoke$arity$variadic' -/cljs/stacktrace.cljc 0 errors, 0 warnings, 9 dynamic +cljs/stacktrace.cljc 0 errors, 0 warnings, 9 dynamic 12911: dynamic 'indexOf' 12949: dynamic 'indexOf' 12976: dynamic 'substring' 14612: dynamic 'indexOf' -/cljs/support.cljc 0 errors, 0 warnings, 0 dynamic -/cljs/tagged_literals.cljc 0 errors, 0 warnings, 9 dynamic +cljs/support.cljc 0 errors, 0 warnings, 0 dynamic +cljs/tagged_literals.cljc 0 errors, 0 warnings, 9 dynamic 1444: dynamic '-message' 2005: dynamic '-message' -/cljs/test.cljc 0 errors, 0 warnings, 5 dynamic +cljs/test.cljc 0 errors, 0 warnings, 5 dynamic 5828: dynamic 'message' 9330: dynamic 'cljs$lang$var' 9370: dynamic 'cljs$lang$var' -/cljs/test.cljs 0 errors, 0 warnings, 10 dynamic +cljs/test.cljs 0 errors, 0 warnings, 10 dynamic 13468: dynamic 'split' 13881: dynamic 'split' 13932: dynamic 'split' @@ -1343,19 +1255,19 @@ 14759: dynamic 'stack' 15174: dynamic 'fileName' 15208: dynamic 'lineNumber' -/cljs/util.cljc 0 errors, 1 warnings, 5 dynamic +cljs/util.cljc 0 errors, 1 warnings, 5 dynamic 1137: unable to resolve 'getParentFile' 1083: dynamic 'getName' 1232: dynamic 'isDirectory' 5596: dynamic 'getFile' 6926: dynamic 'getAbsolutePath' 6981: dynamic 'getFile' -/clojure/browser/dom.cljs 0 errors, 0 warnings, 22 dynamic +clojure/browser/dom.cljs 0 errors, 0 warnings, 22 dynamic 759: dynamic 'log' 821: dynamic 'log' 4239: dynamic 'value' 4581: dynamic 'click' -/clojure/browser/event.cljs 0 errors, 0 warnings, 14 dynamic +clojure/browser/event.cljs 0 errors, 0 warnings, 14 dynamic 717: dynamic 'EventTarget' 729: dynamic 'EventType' 937: dynamic 'toLowerCase' @@ -1367,7 +1279,7 @@ 2117: dynamic 'events/dispatchEvent' 2171: dynamic 'events/expose' 2273: dynamic 'events/getTotalListenerCount' -/clojure/browser/net.cljs 0 errors, 1 warnings, 29 dynamic +clojure/browser/net.cljs 0 errors, 1 warnings, 29 dynamic 4870: unable to resolve 'WebSocket.EventType' 807: dynamic 'XhrIo' 813: dynamic 'EventType' @@ -1391,7 +1303,7 @@ 4575: dynamic 'open' 4635: dynamic 'send' 4806: dynamic 'toLowerCase' -/clojure/browser/repl.cljs 0 errors, 2 warnings, 83 dynamic +clojure/browser/repl.cljs 0 errors, 2 warnings, 83 dynamic 1368: unable to resolve 'HOST' 1399: unable to resolve 'PORT' 1772: dynamic 'json/serialize' @@ -1427,22 +1339,22 @@ 9865: dynamic 'json/serialize' 10144: dynamic 'display' 10155: dynamic 'style' -/clojure/browser/repl/preload.cljs 0 errors, 2 warnings, 0 dynamic +clojure/browser/repl/preload.cljs 0 errors, 2 warnings, 0 dynamic 594: unable to resolve 'HOST' 608: unable to resolve 'PORT' -/clojure/core/protocols.cljs 0 errors, 0 warnings, 0 dynamic -/clojure/core/reducers.cljs 0 errors, 0 warnings, 2 dynamic +clojure/core/protocols.cljs 0 errors, 0 warnings, 0 dynamic +clojure/core/reducers.cljs 0 errors, 0 warnings, 2 dynamic 6507: dynamic 'push' 8552: dynamic 'fold' -/clojure/data.cljs 0 errors, 0 warnings, 0 dynamic -/clojure/datafy.cljs 0 errors, 0 warnings, 0 dynamic -/clojure/edn.cljs 0 errors, 0 warnings, 0 dynamic -/clojure/reflect.cljs 0 errors, 0 warnings, 6 dynamic +clojure/data.cljs 0 errors, 0 warnings, 0 dynamic +clojure/datafy.cljs 0 errors, 0 warnings, 0 dynamic +clojure/edn.cljs 0 errors, 0 warnings, 0 dynamic +clojure/reflect.cljs 0 errors, 0 warnings, 6 dynamic 831: dynamic 'log' 1169: dynamic 'getResponseText' 1188: dynamic 'currentTarget' -/clojure/set.cljs 0 errors, 0 warnings, 0 dynamic -/clojure/string.cljs 0 errors, 0 warnings, 46 dynamic +clojure/set.cljs 0 errors, 0 warnings, 0 dynamic +clojure/string.cljs 0 errors, 0 warnings, 46 dynamic 592: dynamic 'StringBuffer' 838: dynamic 'replace' 984: dynamic 'source' @@ -1474,8 +1386,131 @@ 7560: dynamic 'indexOf' 7816: dynamic 'lastIndexOf' 7931: dynamic 'lastIndexOf' -/clojure/walk.cljs 0 errors, 0 warnings, 0 dynamic -/clojure/zip.cljs 0 errors, 0 warnings, 0 dynamic -/process/env.cljs 0 errors, 1 warnings, 0 dynamic +clojure/walk.cljs 0 errors, 0 warnings, 0 dynamic +clojure/zip.cljs 0 errors, 0 warnings, 0 dynamic +process/env.cljs 0 errors, 1 warnings, 0 dynamic 541: unable to resolve 'NODE_ENV' -Total: 342 warnings, 1651 dynamic in 74 files (1.64 MB) \ No newline at end of file +clojure/data/json.clj 0 errors, 0 warnings, 0 dynamic +clojure/data/json_compat_0_1.clj 0 errors, 0 warnings, 0 dynamic +cljs/tools/reader.cljs 0 errors, 8 warnings, 47 dynamic + 594: unable to resolve 'read' + 599: unable to resolve 'read-line' + 609: unable to resolve 'read-string' + 626: unable to resolve 'read+string' + 666: unable to resolve 'default-data-readers' + 15420: unable to resolve 'NaN' + 15444: unable to resolve '-Inf' + 15483: unable to resolve 'Inf' + 2257: dynamic 'clear' + 2482: dynamic 'toString' + 2524: dynamic 'append' + 3449: dynamic 'append' + 3646: dynamic 'append' + 4971: dynamic 'charCodeAt' + 5030: dynamic 'charCodeAt' + 5480: dynamic '-length' + 5534: dynamic 'charAt' + 5928: dynamic 'charCodeAt' + 6080: dynamic 'toString' + 9584: dynamic 'HASHMAP-THRESHOLD' + 9644: dynamic 'fromArray' + 9723: dynamic 'fromArray' + 10105: dynamic 'append' + 10350: dynamic 'append' + 11211: dynamic 'append' + 11323: dynamic 'append' + 12930: dynamic 'charAt' + 30876: dynamic 'message' + 31351: dynamic 'message' + 33558: dynamic 'frames' + 33692: dynamic 'trim' + 33800: dynamic 'frames' + 33918: dynamic 'trim' +cljs/tools/reader/edn.cljs 0 errors, 6 warnings, 26 dynamic + 595: unable to resolve 'read' + 600: unable to resolve 'read-string' + 617: unable to resolve 'default-data-readers' + 11101: unable to resolve 'NaN' + 11125: unable to resolve '-Inf' + 11164: unable to resolve 'Inf' + 2403: dynamic 'append' + 4247: dynamic 'charCodeAt' + 4306: dynamic 'charCodeAt' + 5128: dynamic 'charCodeAt' + 5278: dynamic 'toString' + 7222: dynamic 'HASHMAP-THRESHOLD' + 7280: dynamic 'fromArray' + 7357: dynamic 'fromArray' + 7499: dynamic 'append' + 7744: dynamic 'append' + 8540: dynamic 'append' + 8645: dynamic 'append' + 9223: dynamic 'indexOf' + 14189: dynamic 'message' + 14664: dynamic 'message' +cljs/tools/reader/impl/commons.cljs 0 errors, 0 warnings, 13 dynamic + 3432: dynamic 'test' + 3476: dynamic 'test' + 3516: dynamic 'indexOf' + 3895: dynamic 'test' + 3999: dynamic 'indexOf' + 4116: dynamic 'indexOf' +cljs/tools/reader/impl/errors.cljs 0 errors, 0 warnings, 0 dynamic +cljs/tools/reader/impl/inspect.cljs 0 errors, 0 warnings, 3 dynamic + 1282: dynamic 'length' + 1336: dynamic 'substring' + 1368: dynamic 'length' +cljs/tools/reader/impl/utils.cljs 0 errors, 1 warnings, 4 dynamic + 728: unable to resolve 'cljs.core.ExceptionInfo' + 1532: dynamic 'test' +cljs/tools/reader/reader_types.clj 0 errors, 0 warnings, 0 dynamic +cljs/tools/reader/reader_types.cljs 0 errors, 1 warnings, 15 dynamic + 634: unable to resolve 'read-line' + 1910: dynamic 'charAt' + 2029: dynamic 'charAt' + 2235: dynamic 'read' + 2356: dynamic 'read' + 4892: dynamic 'append' + 5124: dynamic 'set' + 5163: dynamic 'getLength' + 8159: dynamic 'append' + 8530: dynamic 'frames' + 8572: dynamic 'frames' + 8614: dynamic 'getLength' + 8747: dynamic 'frames' + 8814: dynamic 'frames' +clojure/tools/reader.clj 0 errors, 3 warnings, 6 dynamic + 14559: unable to resolve 'Inf' + 14594: unable to resolve '-Inf' + 14630: unable to resolve 'NaN' + 5848: dynamic 'startsWith' + 6135: dynamic 'startsWith' + 35355: dynamic 'source-log-frames' + 35619: dynamic 'source-log-frames' + 36977: dynamic 'source-log-frames' + 37151: dynamic 'source-log-frames' +clojure/tools/reader/default_data_readers.clj 0 errors, 0 warnings, 0 dynamic +clojure/tools/reader/edn.clj 0 errors, 3 warnings, 2 dynamic + 10520: unable to resolve 'Inf' + 10555: unable to resolve '-Inf' + 10591: unable to resolve 'NaN' + 4961: dynamic 'startsWith' + 5248: dynamic 'startsWith' +clojure/tools/reader/impl/commons.clj 0 errors, 0 warnings, 6 dynamic + 3202: dynamic 'matcher' + 3236: dynamic 'matches' + 3315: dynamic 'matcher' + 3355: dynamic 'matches' + 3450: dynamic 'matcher' + 3496: dynamic 'matches' +clojure/tools/reader/impl/errors.clj 0 errors, 0 warnings, 0 dynamic +clojure/tools/reader/impl/inspect.clj 0 errors, 0 warnings, 0 dynamic +clojure/tools/reader/impl/utils.clj 0 errors, 6 warnings, 0 dynamic + 1340: unable to resolve 'clojure.tools.reader.impl.utils.TaggedLiteral' + 1533: unable to resolve 'clojure.tools.reader.impl.utils.TaggedLiteral' + 1692: unable to resolve 'clojure.tools.reader.impl.utils.TaggedLiteral' + 2129: unable to resolve 'clojure.tools.reader.impl.utils.ReaderConditional' + 2360: unable to resolve 'clojure.tools.reader.impl.utils.ReaderConditional' + 2455: unable to resolve 'clojure.tools.reader.impl.utils.ReaderConditional' +clojure/tools/reader/reader_types.clj 0 errors, 0 warnings, 0 dynamic +Total: 292 warnings, 1773 dynamic in 93 files (1.84 MB) \ No newline at end of file diff --git a/tests/lang/language-tests.kt b/tests/lang/language-tests.kt index 7e86933..04d9982 100644 --- a/tests/lang/language-tests.kt +++ b/tests/lang/language-tests.kt @@ -1,11 +1,21 @@ package org.intellij.clojure.lang +import com.intellij.core.CoreApplicationEnvironment import com.intellij.lang.LanguageASTFactory import com.intellij.lang.LanguageBraceMatching import com.intellij.lang.annotation.HighlightSeverity import com.intellij.lexer.Lexer +import com.intellij.openapi.extensions.ExtensionPointName +import com.intellij.openapi.roots.ModuleRootModificationUtil import com.intellij.openapi.util.RecursionManager import com.intellij.openapi.util.text.StringUtil +import com.intellij.openapi.vfs.VirtualFileManager +import com.intellij.openapi.vfs.VirtualFileManagerListener +import com.intellij.openapi.vfs.impl.CoreVirtualFilePointerManager +import com.intellij.openapi.vfs.impl.VirtualFileManagerImpl +import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem +import com.intellij.openapi.vfs.local.CoreLocalFileSystem +import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager import com.intellij.psi.PsiErrorElement import com.intellij.psi.SyntaxTraverser import com.intellij.psi.TokenType @@ -21,7 +31,6 @@ import org.intellij.clojure.parser.* import org.intellij.clojure.util.elementType import org.intellij.clojure.util.jbIt import java.io.File -import java.nio.file.Path /** * @author gregsh @@ -90,12 +99,12 @@ class ClojureParsingTest : ClojureParsingTestCase(ClojureParserDefinition()) { fun testCommentedForms() = doCodeTest("(def ^int #_cc n 0) {#_0 #_1 :a '#_'(xxx) a :b 'b #_2 #_3} # #_asd dbg 10") fun testInterOp() = doCodeTest("(a.) (a/b.)") - fun testParseClojureLang() = walkAndParse(::walkClojureLang) + fun testParseClojureLang() = walkAndParse(CLOJURE_LIB) // fun testParseWellKnownLibs() = walkAndParse(::walkKnownLibs) } class ClojureScriptParsingTest : ClojureParsingTestCase(ClojureScriptParserDefinition()) { - fun testParseClojureScript() = walkAndParse(::walkClojureScriptLang) + fun testParseClojureScript() = walkAndParse(CLOJURE_SCRIPT_LIB) } abstract class ClojureParsingTestCase(o: ClojureParserDefinitionBase) : ParsingTestCase( @@ -107,7 +116,7 @@ abstract class ClojureParsingTestCase(o: ClojureParserDefinitionBase) : ParsingT addExplicitExtension(LanguageBraceMatching.INSTANCE, ClojureLanguage, ClojureBraceMatcher()) } - fun walkAndParse(walker: ((Path, String) -> Unit) -> Unit) { + fun walkAndParse(libName: String) { val stat = object { var duration = System.currentTimeMillis() var files: Int = 0 @@ -115,10 +124,16 @@ abstract class ClojureParsingTestCase(o: ClojureParserDefinitionBase) : ParsingT var nodes: Long = 0 var errors: Long = 0 } - walker { path: Path, text: String -> + CoreApplicationEnvironment.registerApplicationExtensionPoint(ExtensionPointName("com.intellij.virtualFileManagerListener"), VirtualFileManagerListener::class.java) + val vfm = VirtualFileManagerImpl(mutableListOf(CoreLocalFileSystem(), CoreJarFileSystem())) + application.registerService(VirtualFileManager::class.java, vfm) + application.registerService(VirtualFilePointerManager::class.java, CoreVirtualFilePointerManager()) + + getLibrarySources(libName).forEach { vFile -> + val (path, text) = getFileText(vFile) stat.files++ stat.chars += text.length - val psiFile = createFile(path.toString(), text) + val psiFile = createFile(path, text) for (o in SyntaxTraverser.psiTraverser(psiFile)) { stat.nodes++ val elementType = o.elementType @@ -152,20 +167,21 @@ class ClojureHighlightingTest : BasePlatformTestCase() { fun testClojureFixes() = doTest("clj") - fun testClojureLang() = walkAndHighlight(::walkClojureLang) - fun testClojureScript() = walkAndHighlight(::walkClojureScriptLang) + fun testClojureLang() = walkLibrary("Clojure") + fun testClojureScript() = walkLibrary("ClojureScript") private fun doTest(extension: String) { myFixture.configureByFile(getTestName(false) + ".$extension") myFixture.checkHighlighting() } -// fun testClojureFile() = "/clojure/core.clj".let { file -> -// walkAndHighlight { block -> walkFs(CLJ_LIB_FS, file, block) } } - - private fun walkAndHighlight(walker: ((Path, String) -> Unit) -> Unit) { + private fun walkLibrary(libName: String) { RecursionManager.disableAssertOnRecursionPrevention(testRootDisposable) //TODO fixme RecursionManager.disableMissedCacheAssertions(testRootDisposable) //TODO fixme + + ModuleRootModificationUtil.addModuleLibrary(module, libName, getLibraryUrls(libName), emptyList()) + + val ignoreInCljs = arrayOf("goog", "gobj", "gstring", "garray", "gdom", "gjson") val stat = object { var duration = System.currentTimeMillis() @@ -175,10 +191,11 @@ class ClojureHighlightingTest : BasePlatformTestCase() { var dynamic: Long = 0 } val report = StringBuilder() - walker { path: Path, text: String -> + getLibrarySources(libName).forEach { vFile -> + val (path, text) = getFileText(vFile) stat.files++ stat.chars += text.length - val lightVirtualFile = LightVirtualFile(path.toString(), ClojureLanguage, text) + val lightVirtualFile = LightVirtualFile(path, ClojureLanguage, text) val isCljs = lightVirtualFile.name.run { endsWith(".cljc") || endsWith(".cljs") } myFixture.configureFromExistingVirtualFile(lightVirtualFile) val infos = myFixture.doHighlighting().jbIt() @@ -187,15 +204,17 @@ class ClojureHighlightingTest : BasePlatformTestCase() { val dynamic = infos.filter { it.forcedTextAttributesKey == ClojureColors.DYNAMIC }.size() stat.warnings += warnings stat.dynamic += dynamic - "${path.toString().run { this + StringUtil.repeat(" ", Math.max(0, 40 - length)) }} $errors errors, $warnings warnings, $dynamic dynamic".run { + "${path.run { this + StringUtil.repeat(" ", kotlin.math.max(0, 40 - length)) }} $errors errors, $warnings warnings, $dynamic dynamic".run { report.append(this).append("\n") println(this) } for (info in infos.filter { it.severity == HighlightSeverity.ERROR || it.severity == HighlightSeverity.WARNING }) { + val sym = StringUtil.trimLeading(text.substring(info.startOffset, info.endOffset), '\'').trim() + if (isCljs && ignoreInCljs.find { sym.startsWith(it) } != null) continue report.append(" ${info.startOffset}: ${info.description}").append("\n") } for (info in infos.filter { it.forcedTextAttributesKey == ClojureColors.DYNAMIC }) { - val sym = text.subSequence(info.startOffset, info.endOffset) + val sym = StringUtil.trimLeading(text.substring(info.startOffset, info.endOffset), '\'').trim() if (isCljs && (sym == "js" || ignoreInCljs.find { sym.startsWith(it) } != null)) continue report.append(" ${info.startOffset}: dynamic '$sym'").append("\n") } diff --git a/tests/lang/test-util.kt b/tests/lang/test-util.kt index f04377a..2e20d6f 100644 --- a/tests/lang/test-util.kt +++ b/tests/lang/test-util.kt @@ -17,41 +17,47 @@ package org.intellij.clojure.lang +import com.intellij.openapi.util.JDOMUtil import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtilRt +import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtilRt import com.intellij.openapi.vfs.CharsetToolkit -import org.intellij.clojure.ClojureConstants +import com.intellij.openapi.vfs.VfsUtil +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.openapi.vfs.VirtualFileManager import java.io.File import java.io.InputStreamReader -import java.nio.file.* /** * @author gregsh */ val TEST_DATA_PATH = FileUtil.toSystemIndependentName(File("testData").absolutePath) - -val CLJ_LIB_FS = resourceFs(ClojureConstants.CLJ_CORE_PATH) -val CLJS_LIB_FS = resourceFs(ClojureConstants.CLJS_CORE_PATH) -val KNOWN_LIB_FS = resourceFsn(ClojureConstants.LEIN_CONFIG) - -fun walkClojureLang(block: (Path, String) -> Unit) = walkFs(CLJ_LIB_FS, block) -fun walkClojureScriptLang(block: (Path, String) -> Unit) = walkFs(CLJS_LIB_FS, block) -fun walkKnownLibs(block: (Path, String) -> Unit) = KNOWN_LIB_FS.forEach { walkFs(it, block) } - -fun resourceFs(resource: String) = ClojureLanguage.javaClass.getResource(resource)!! - .let { FileSystems.newFileSystem(it.toURI(), emptyMap()) }!! - -fun resourceFsn(resource: String) = ClojureLanguage.javaClass.classLoader.getResources(resource) - .asSequence().sortedBy { it.file }.map { FileSystems.newFileSystem(it.toURI(), emptyMap()) }.toList() - -fun walkFs(fs: FileSystem, block: (Path, String) -> Unit) = walkFs(fs, "/", block) -fun walkFs(fs: FileSystem, root: String, block: (Path, String) -> Unit) = Files.walk(fs.getPath(root)) - .filter { FileUtilRt.getExtension(it.fileName?.toString() ?: "").startsWith("clj") } - .sorted() - .forEach { - val stream = fs.provider().newInputStream(it, StandardOpenOption.READ) - val textRaw = FileUtil.loadTextAndClose(InputStreamReader(stream, CharsetToolkit.UTF8)).trim { it <= ' ' } - val text = StringUtilRt.convertLineSeparators(textRaw) - block(it, text) +val CLOJURE_LIB = "Clojure" +val CLOJURE_SCRIPT_LIB = "ClojureScript" + +fun getLibrarySources(libName: String) = getLibraryUrls(libName) + .mapNotNull { VirtualFileManager.getInstance().findFileByUrl(it) } + .flatMap { VfsUtil.collectChildrenRecursively(it) } + .filter { FileUtilRt.getExtension(it.name).startsWith("clj") } + .sortedBy { it.path } + +fun getLibraryUrls(libName: String) = JDOMUtil.load(File(".idea/libraries/$libName.xml")) + .getChild("library").getChild("CLASSES").getChildren("root") + .mapNotNull { it.getAttributeValue("url") } + .map { StringUtil.trimEnd(it, "!/") } + .map { it.substring(it.lastIndexOf("/") + 1) } + .mapNotNull { + val cp = System.getProperty("java.class.path") + val idx = cp.indexOf(it) + if (idx == -1) return@mapNotNull null + val path = cp.substring(cp.substring(0, idx).lastIndexOf(File.pathSeparator) + 1, idx + it.length) + "jar://$path!/" } + +fun getFileText(vFile: VirtualFile) : Pair { + val path = vFile.path.substring(vFile.path.indexOf("!/") + 2) + val text = StringUtilRt.convertLineSeparators(FileUtil.loadTextAndClose( + InputStreamReader(vFile.inputStream, CharsetToolkit.UTF8)).trim { it <= ' ' }) + return Pair(path, text) +} \ No newline at end of file