diff --git a/README.md b/README.md index 93e73c4..fd2b9a2 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ using ExpressionPatterns.Dispatch.MetaUtilities @metaconflicts @f #> < > | < > -@remove @f(z,x+y) +@removemeta @f(z,x+y) @metaconflicts @f #> nothing diff --git a/src/Dispatch/MetaUtilities.jl b/src/Dispatch/MetaUtilities.jl index 71aaf98..b642bcf 100644 --- a/src/Dispatch/MetaUtilities.jl +++ b/src/Dispatch/MetaUtilities.jl @@ -5,7 +5,7 @@ using ...Dispatch.TopMetaTables import ...Dispatch.Applications: MACROMETHODS, METAFUNCTIONS import ...Dispatch.TableManipulation: print_conflicts import Base.Meta: quot -export @prefer, @whichmeta, @remove, @importmeta, @metamethods, @metaconflicts +export @prefer, @whichmeta, @removemeta, @importmeta, @metamethods, @metaconflicts const MU = MetaUtilities const MM = MACROMETHODS @@ -75,15 +75,15 @@ conflictscode(m, typ, M=current_module()) = # remove #---------------------------------------------------------------------------- -@macromethod remove( m(*{patterns})) = esc(removecode(m, patterns, :fun)) -@macromethod remove( M.m(*{patterns})) = esc(removecode(m, patterns, :fun, M)) -@macromethod remove( @m(*{patterns})) = esc(removecode(m, patterns, :macro)) -@macromethod remove(M.@m(*{patterns})) = esc(removecode(m, patterns, :macro, M)) +@macromethod removemeta( m(*{patterns})) = esc(removecode(m, patterns, :fun)) +@macromethod removemeta( M.m(*{patterns})) = esc(removecode(m, patterns, :fun, M)) +@macromethod removemeta( @m(*{patterns})) = esc(removecode(m, patterns, :macro)) +@macromethod removemeta(M.@m(*{patterns})) = esc(removecode(m, patterns, :macro, M)) -@macromethod remove(label, :L{from}, m) = esc(removecode(m, label, :fun)) -@macromethod remove(label, :L{from}, M.m) = esc(removecode(m, label, :fun, M)) -@macromethod remove(label, :L{from}, @m) = esc(removecode(m, label, :macro)) -@macromethod remove(label, :L{from}, M.@m) = esc(removecode(m, label, :macro, M)) +@macromethod removemeta(label, :L{from}, m) = esc(removecode(m, label, :fun)) +@macromethod removemeta(label, :L{from}, M.m) = esc(removecode(m, label, :fun, M)) +@macromethod removemeta(label, :L{from}, @m) = esc(removecode(m, label, :macro)) +@macromethod removemeta(label, :L{from}, M.@m) = esc(removecode(m, label, :macro, M)) #---------------------------------------------------------------------------- diff --git a/test/reflection.jl b/test/reflection.jl index 24707ac..48fbf90 100644 --- a/test/reflection.jl +++ b/test/reflection.jl @@ -65,14 +65,14 @@ ypx = :(y+x) @test @h(x+y) == [:x, :y] @test h(:(x+y)) == [:x, :y] -@remove plus from @h -@remove plus from h +@removemeta plus from @h +@removemeta plus from h @test @h(x+y) == [:(x+y)] @test h(:(x+y)) == [:(x+y)] -@remove @h(x) -@remove h(x) +@removemeta @h(x) +@removemeta h(x) @test_throws MetaMethodError @eval @h(x) @test_throws MetaMethodError h(:x)