- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 5.7k
 
Labels
bugIndicates an unexpected problem or unintended behaviorIndicates an unexpected problem or unintended behaviormacros@macros@macros
Description
MWE:
macro foo()
    quote
        function bar(val)
            @inline identity(nothing)
        end
    end
end
@fooERROR: LoadError: syntax: local variable name "#9#val" conflicts with an argument
Using any other variable name than val makes this work. Probably suspect: 
Lines 846 to 859 in 7eb9615
| function annotate_meta_def_or_block(@nospecialize(ex), meta::Symbol) | |
| inner = unwrap_macrocalls(ex) | |
| if is_function_def(inner) | |
| # annotation on a definition | |
| return esc(pushmeta!(ex, meta)) | |
| else | |
| # annotation on a block | |
| return Expr(:block, | |
| Expr(meta, true), | |
| Expr(:local, Expr(:(=), :val, esc(ex))), | |
| Expr(meta, false), | |
| :val) | |
| end | |
| end | 
Metadata
Metadata
Assignees
Labels
bugIndicates an unexpected problem or unintended behaviorIndicates an unexpected problem or unintended behaviormacros@macros@macros