Repository navigation
Conversation
This was referenced Oct 26, 2026
realgenekim
pushed a commit
to realgenekim/crapper
that referenced
this pull request
Oct 31, 2026
…ionals Review fixes for the defmethod / record-method units. Names are now unique and derived from the value as written: - defmethod: `multi dispatch`, the dispatch source with whitespace, commas, comments, and #_ discards collapsed outside strings only. A string keeps its contents (a raw newline is written as \n, the same value). Tagged literals keep their payload (`#inst "2020"`). `::kw` resolves to `:ns/kw`, `::alias/kw` through the ns form's :as / :as-alias aliases, else stays literal. - Record, type, and extend-* methods: `Type.Protocol.method`, so the same method of two protocols no longer collides. ^hints and metadata stay out of the name. - Top-level reify: `var.Interface.method`; proxy: `var.method`. - Any name repeated in a file gets unclebob#2, unclebob#3 in source order, for defmethods as for methods. defn names are unchanged. Coverage: a method's first or last line, when shared with another method or the enclosing form's own code, is left out of its score (Function.cover_start / cover_end). A method with no line of its own falls back to its whole range. Documented in the README. Methods inside #? and #?@ in type and reify bodies are units, from every branch. A method name such as `when` no longer counts as a decision. Commas end symbols when reading children. Cleanup: the unused _ANON_HEADS, the unused `line` parameter, the list subclass that carried the namespace, _reify_units/_renumber, and _first_symbol_in_vector are gone. _dispatch_end no longer has a #? branch, which _child_end's prefix handling made unreachable. Co-Authored-By: Gene Kim <genek@itrevolution.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #2
Problem:
Java coverage only worked with Maven. On Gradle projects every method got
0% coverage, so CRAP scores were too high.
Fix:
folder with its own settings file stays a separate build.
so the project's build file is not changed.
Tested:
there before (they need bb and uml-viewer).