ericphanson / ExplicitImports.jl

Developer tooling for Julia namespace management: detecting implicit imports, improper explicit imports, and improper qualified accesses
https://ericphanson.github.io/ExplicitImports.jl/
MIT License
62 stars 2 forks source link

use of `only` on collection with more than one element #30

Closed baggepinnen closed 3 months ago

baggepinnen commented 3 months ago

I tried ExplicitImports.inspect_session() and got the error below. I hope the stack trace is useful, because I don't see a reasonable way to produce an MWE for this :sweat_smile: The last analyzed package output was

Additionally, module GenericSchur has stale explicit imports for these unused names:
- BlasComplex
- BlasFloat
- _ordschur

if that's helpful

ERROR: ArgumentError: Collection has multiple elements, must contain exactly 1 element
Stacktrace:
  [1] only
    @ ./iterators.jl:1527 [inlined]
  [2] children(wrapper::ExplicitImports.SyntaxNodeWrapper)
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/parse_utilities.jl:65
  [3] iterate (repeats 2 times)
    @ ~/.julia/packages/AbstractTrees/Ftf8W/src/cursors.jl:167 [inlined]
  [4] iterate(csr::TrivialCursor{ImplicitCursor{…}, ImplicitCursor{…}}, s::AbstractTrees.InitialState)
    @ AbstractTrees ~/.julia/packages/AbstractTrees/Ftf8W/src/cursors.jl:116
  [5] iterate
    @ ~/.julia/packages/AbstractTrees/Ftf8W/src/cursors.jl:115 [inlined]
  [6] isempty
    @ ./essentials.jl:957 [inlined]
  [7] descendleft(node::TrivialCursor{ImplicitCursor{…}, ImplicitCursor{…}})
    @ AbstractTrees ~/.julia/packages/AbstractTrees/Ftf8W/src/base.jl:176
  [8] descendleft(node::TrivialCursor{ImplicitCursor{…}, ImplicitCursor{…}})
    @ AbstractTrees ~/.julia/packages/AbstractTrees/Ftf8W/src/base.jl:177
  [9] next(s::AbstractTrees.LeavesState{TrivialCursor{ImplicitCursor{…}, ImplicitCursor{…}}})
    @ AbstractTrees ~/.julia/packages/AbstractTrees/Ftf8W/src/iteration.jl:241
 [10] iterate(ti::Leaves{ImplicitCursor{…}}, s::AbstractTrees.LeavesState{TrivialCursor{…}})
    @ AbstractTrees ~/.julia/packages/AbstractTrees/Ftf8W/src/iteration.jl:75
 [11] analyze_all_names(file::String; debug::Bool)
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/get_names_used.jl:253
 [12] analyze_all_names
    @ ~/.julia/packages/ExplicitImports/Meanz/src/get_names_used.jl:187 [inlined]
 [13] get_names_used(file::String)
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/get_names_used.jl:330
 [14] fill_cache!(file_analysis::Dict{String, ExplicitImports.FileAnalysis}, files::Vector{String})
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/ExplicitImports.jl:515
 [15] explicit_imports(mod::Module, file::String; skip::Tuple{…}, warn_stale::Bool, strict::Bool, file_analysis::Dict{…})
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/ExplicitImports.jl:103
 [16] explicit_imports
    @ ~/.julia/packages/ExplicitImports/Meanz/src/ExplicitImports.jl:97 [inlined]
 [17] print_explicit_imports(io::Base.TTY, mod::Module, file::String; skip::Tuple{…}, warn_stale::Bool, strict::Bool, show_locations::Bool, linewidth::Int64, recursive::Bool, name_fn::ExplicitImports.var"#31#33")
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/ExplicitImports.jl:137
 [18] print_explicit_imports (repeats 2 times)
    @ ~/.julia/packages/ExplicitImports/Meanz/src/ExplicitImports.jl:129 [inlined]
 [19] inspect_session(io::Base.TTY; skip::Tuple{Module, Module}, inner::typeof(print_explicit_imports))
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/ExplicitImports.jl:533
 [20] inspect_session(io::Base.TTY)
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/ExplicitImports.jl:528
 [21] inspect_session(; kw::@Kwargs{})
    @ ExplicitImports ~/.julia/packages/ExplicitImports/Meanz/src/ExplicitImports.jl:521
 [22] top-level scope
    @ REPL[44]:1
Some type information was truncated. Use `show(err)` to see complete types.