Closed SevereOverfl0w closed 4 years ago
:exclamation: No coverage uploaded for pull request base (
master@36b6fa6
). Click here to learn what that means. The diff coverage is64.31%
.
@@ Coverage Diff @@
## master #77 +/- ##
=========================================
Coverage ? 68.67%
=========================================
Files ? 3
Lines ? 348
Branches ? 16
=========================================
Hits ? 239
Misses ? 93
Partials ? 16
Impacted Files | Coverage Δ | |
---|---|---|
src/aero/impl/macro.cljc | 100% <100%> (ø) |
|
src/aero/core.cljc | 62.6% <53.17%> (ø) |
|
src/aero/alpha/core.cljc | 80.58% <80.58%> (ø) |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 36b6fa6...5783fc8. Read the comment docs.
The major change here is the addition of macros, a new kind of reader tag. These fall into 3 categories:
#or
- Instead of evaluating all of it's list of arguments, it only evaluates them until it gets a truthy. The same as the clojure macro.#profile
,#user
, etc. - The case-like macros will only evaluate the correct branch as appropriate. These are also implemented using a consistent underlying function which means this commit will fix #67.#ref
is expressable using this macro system, and is no longer a static dependency analysis. The static analysis was fragile. The special-casing for it made it harder to implement other#ref
-like things such as a#relref
. This will fix #50.I've also scanned through the open issues, marked any fixed as closed, and fixed low-hanging fruit.
This PR is best reviewed commit-by-commit as I've made an effort to explain each change, and make it isolated for easier understanding.