We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
===
!==
1 parent 7bc92b7 commit bdf210bCopy full SHA for bdf210b
Project.toml
@@ -1,6 +1,6 @@
1
name = "MacroTools"
2
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
3
-version = "0.5.7"
+version = "0.5.8"
4
5
[deps]
6
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
src/match/macro.jl
@@ -2,7 +2,7 @@ function allbindings(pat, bs)
if isa(pat, QuoteNode)
return allbindings(pat.value, bs)
end
- return isbinding(pat) || (isslurp(pat) && pat ≠ :__) ? push!(bs, bname(pat)) :
+ return isbinding(pat) || (isslurp(pat) && pat !== :__) ? push!(bs, bname(pat)) :
isa(pat, TypeBind) ? push!(bs, pat.name) :
7
isa(pat, OrBind) ? (allbindings(pat.pat1, bs); allbindings(pat.pat2, bs)) :
8
istb(pat) ? push!(bs, tbname(pat)) :
@@ -25,7 +25,7 @@ function makeclause(pat, yes, els = nothing)
25
pat = subtb(subor(pat))
26
quote
27
env = trymatch($(Expr(:quote, pat)), ex)
28
- if env != nothing
+ if env !== nothing
29
$(bindinglet(bs, esc(yes)))
30
else
31
$els
src/match/match.jl
@@ -36,7 +36,7 @@ match_inner(pat::QuoteNode, ex::QuoteNode, env) =
36
match(pat.value, ex.value, env)
37
38
isslurp(s) = false
39
-isslurp(s::Symbol) = s == :__ || occursin(r"[^_]__$", string(s))
+isslurp(s::Symbol) = s === :__ || occursin(r"[^_]__$", string(s))
40
41
function slurprange(pat)
42
slurps = length(filter(isslurp, pat))
@@ -68,7 +68,7 @@ function match_inner(pat::Expr, ex::Expr, env)
68
69
70
if isslurp(p)
71
- p ≠ :__ && @trymatch store!(env, bname(p), slurp)
+ p !== :__ && @trymatch store!(env, bname(p), slurp)
72
73
@trymatch match(p, ex.args[i], env)
74
i += 1
@@ -101,7 +101,7 @@ function match(pat, ex, env)
101
ex = normalise(ex)
102
pat, ex = blockunify(pat, ex)
103
isslurp(pat) && return store!(env, bname(pat), Any[ex])
104
- return match_inner(pat, ex, env)
+ return match_inner(pat, ex, env)::Union{typeof(env),MatchError,Nothing}
105
106
107
match(pat, ex) = match(pat, ex, Dict())
src/utils.jl
@@ -77,7 +77,7 @@ rmlines(x) = x
77
function rmlines(x::Expr)
78
# Do not strip the first argument to a macrocall, which is
79
# required.
80
- if x.head == :macrocall && length(x.args) >= 2
+ if x.head === :macrocall && length(x.args) >= 2
81
Expr(x.head, x.args[1], nothing, filter(x->!isline(x), x.args[3:end])...)
82
83
Expr(x.head, filter(x->!isline(x), x.args)...)
@@ -161,9 +161,9 @@ isgensym(s) = false
161
162
function gensymname(x::Symbol)
163
m = Base.match(r"##(.+)#\d+", String(x))
164
- m == nothing || return m.captures[1]
+ m === nothing || return m.captures[1]
165
m = Base.match(r"#\d+#(.+)", String(x))
166
167
return "x"
168
169
0 commit comments