domluna / JuliaFormatter.jl

An opinionated code formatter for Julia. Plot twist - the opinion is your own.

Home Page:https://domluna.github.io/JuliaFormatter.jl/dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ERROR: ArgumentError: invalid index: nothing of type Nothing

mortenpi opened this issue · comments

With JuliaFormatter v1.0.36, the following (bad) code

struct Foo
    "foo
    """
    foo::String
end

with the option

align_struct_field = true

leads to

ERROR: ArgumentError: invalid index: nothing of type Nothing
Stacktrace:
  [1] to_index(i::Nothing)
    @ Base ./indices.jl:300
  [2] to_index(A::Vector{JuliaFormatter.FST}, i::Nothing)
    @ Base ./indices.jl:277
  [3] _to_indices1(A::Vector{JuliaFormatter.FST}, inds::Tuple{Base.OneTo{Int64}}, I1::Nothing)
    @ Base ./indices.jl:359
  [4] to_indices
    @ ./indices.jl:354 [inlined]
  [5] to_indices
    @ ./indices.jl:345 [inlined]
  [6] getindex
    @ ./abstractarray.jl:1296 [inlined]
  [7] getindex
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/fst.jl:183 [inlined]
  [8] align_struct!(fst::JuliaFormatter.FST)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/align.jl:205
  [9] align_fst!(fst::JuliaFormatter.FST, opts::JuliaFormatter.Options)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/align.jl:10
 [10] format_text(cst::CSTParser.EXPR, style::JuliaFormatter.DefaultStyle, s::JuliaFormatter.State)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:703
 [11] format_text(text::String, style::JuliaFormatter.DefaultStyle, opts::JuliaFormatter.Options)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:686
 [12] format_text(text::String, style::JuliaFormatter.DefaultStyle; kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol, Symbol}, NamedTuple{(:config_applied, :align_struct_field), Tuple{Bool, Bool}}})
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:658
 [13] format_text
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:655 [inlined]
 [14] #format_text#246
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:652 [inlined]
 [15] format_text
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:651 [inlined]
 [16] _format_file(filename::String; overwrite::Bool, verbose::Bool, format_markdown::Bool, format_options::Base.Pairs{Symbol, Bool, Tuple{Symbol, Symbol}, NamedTuple{(:config_applied, :align_struct_field), Tuple{Bool, Bool}}})
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:777
 [17] format(path::String, options::JuliaFormatter.Configuration)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:922
 [18] #format#256
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:888 [inlined]
 [19] format(path::String)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:888
 [20] top-level scope
    @ REPL[12]:1

caused by: ArgumentError: invalid index: nothing of type Nothing
Stacktrace:
  [1] to_index(i::Nothing)
    @ Base ./indices.jl:300
  [2] to_index(A::Vector{JuliaFormatter.FST}, i::Nothing)
    @ Base ./indices.jl:277
  [3] _to_indices1(A::Vector{JuliaFormatter.FST}, inds::Tuple{Base.OneTo{Int64}}, I1::Nothing)
    @ Base ./indices.jl:359
  [4] to_indices
    @ ./indices.jl:354 [inlined]
  [5] to_indices
    @ ./indices.jl:345 [inlined]
  [6] getindex
    @ ./abstractarray.jl:1296 [inlined]
  [7] getindex
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/fst.jl:183 [inlined]
  [8] align_struct!(fst::JuliaFormatter.FST)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/align.jl:205
  [9] align_fst!(fst::JuliaFormatter.FST, opts::JuliaFormatter.Options)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/align.jl:10
 [10] format_text(cst::CSTParser.EXPR, style::JuliaFormatter.DefaultStyle, s::JuliaFormatter.State)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:703
 [11] format_text(text::String, style::JuliaFormatter.DefaultStyle, opts::JuliaFormatter.Options)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:686
 [12] format_text(text::String, style::JuliaFormatter.DefaultStyle; kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol, Symbol}, NamedTuple{(:config_applied, :align_struct_field), Tuple{Bool, Bool}}})
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:658
 [13] format_text
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:655 [inlined]
 [14] #format_text#246
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:652 [inlined]
 [15] format_text
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:651 [inlined]
 [16] _format_file(filename::String; overwrite::Bool, verbose::Bool, format_markdown::Bool, format_options::Base.Pairs{Symbol, Bool, Tuple{Symbol, Symbol}, NamedTuple{(:config_applied, :align_struct_field), Tuple{Bool, Bool}}})
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:777
 [17] format(path::String, options::JuliaFormatter.Configuration)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:918
 [18] #format#256
    @ ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:888 [inlined]
 [19] format(path::String)
    @ JuliaFormatter ~/.julia/packages/JuliaFormatter/rZb2A/src/JuliaFormatter.jl:888
 [20] top-level scope
    @ REPL[12]:1