Skip to content

Global declaration at top level should not trigger "misplaced global declaration in value position" #50

@mlechu

Description

@mlechu
julia> JuliaLowering.include_string(Module(), "global x")
ERROR: LoweringError:
global x
#      ╙ ── misplaced global declaration in value position

Detailed provenance:
(global #₁/x)
└─ (global x)
   └─ x
      └─ x
         └─ @ string:1

Stacktrace:
  [1] compile(ctx::JuliaLowering.LinearIRContext{SyntaxGraph{Dict{Symbol, Any}}}, ex::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}}, needs_value::Bool, in_tail_pos::Bool)
    @ JuliaLowering ~/JuliaLowering.jl/src/linear_ir.jl:796
  [2] compile(ctx::JuliaLowering.LinearIRContext{SyntaxGraph{Dict{Symbol, Any}}}, ex::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}}, needs_value::Bool, in_tail_pos::Bool)
    @ JuliaLowering ~/JuliaLowering.jl/src/linear_ir.jl:648
  [3] compile_body(ctx::JuliaLowering.LinearIRContext{SyntaxGraph{Dict{Symbol, Any}}}, ex::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}})
    @ JuliaLowering ~/JuliaLowering.jl/src/linear_ir.jl:917
  [4] compile_lambda(outer_ctx::JuliaLowering.LinearIRContext{SyntaxGraph{Dict{Symbol, Any}}}, ex::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}})
    @ JuliaLowering ~/JuliaLowering.jl/src/linear_ir.jl:1056
  [5] linearize_ir(ctx::JuliaLowering.ClosureConversionCtx{SyntaxGraph{Dict{Symbol, Any}}}, ex::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}})
    @ JuliaLowering ~/JuliaLowering.jl/src/linear_ir.jl:1127
  [6] lower(mod::Module, ex0::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}}, expr_compat_mode::Bool)
    @ JuliaLowering ~/JuliaLowering.jl/src/eval.jl:6
  [7] eval(mod::Module, ex::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}}; expr_compat_mode::Bool)
    @ JuliaLowering ~/JuliaLowering.jl/src/eval.jl:356
  [8] kwcall(::@NamedTuple{expr_compat_mode::Bool}, ::typeof(Core.eval), mod::Module, ex::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}})
    @ JuliaLowering ~/JuliaLowering.jl/src/eval.jl:347
  [9] eval(mod::Module, ex::SyntaxTree{SyntaxGraph{Dict{Symbol, Any}}}; expr_compat_mode::Bool)
    @ JuliaLowering ~/JuliaLowering.jl/src/eval.jl:352
 [10] eval
    @ ~/JuliaLowering.jl/src/eval.jl:347 [inlined]
 [11] include_string
    @ ~/JuliaLowering.jl/src/eval.jl:395 [inlined]
 [12] include_string(mod::Module, code::String)
    @ JuliaLowering ~/JuliaLowering.jl/src/eval.jl:395
 [13] top-level scope
    @ REPL[51]:1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions