-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
using Test: @test
using BlockArrays: blockedrange
using TensorAlgebra: contract
using BlockSparseArrays: BlockSparseArray
g0 = blockedrange([2])
v = BlockSparseArray{Float64}(undef, g0)
a = BlockSparseArray{Float64}(undef);
b = contract((), v, (1,), v, (1,));
@test typeof(a) === typeof(b)
@test sprint(show, MIME("text/plain"), a) == "-blocked 0-dimensional BlockSparseArray{Float64, 0, Array{Float64, 0}, …, Tuple{}}:\n0.0"
display(b)
-blocked 0-dimensional BlockSparseArray{Float64, 0, Array{Float64, 0}, …, Tuple{}}:
ERROR: MethodError: view!(::BlockSparseArray{Float64, 0, Array{Float64, 0}, SparseArraysBase.SparseArrayDOK{Array{Float64, 0}, 0, BlockSparseArrays.GetUnstoredBlock{Tuple{}}}, Tuple{}}) is ambiguous.
Candidates:
view!(a::AbstractArray{<:Any, N}, index::Vararg{BlockArrays.BlockIndexRange{1, R, I} where {R<:Tuple{AbstractUnitRange{<:Integer}}, I<:Tuple{Integer}}, N}) where N
@ BlockSparseArrays ~/.julia/packages/BlockSparseArrays/IRP80/src/BlockArraysExtensions/BlockArraysExtensions.jl:572
view!(a::AbstractArray{<:Any, N}, index::Vararg{Block{1}, N}) where N
@ BlockSparseArrays ~/.julia/packages/BlockSparseArrays/IRP80/src/BlockArraysExtensions/BlockArraysExtensions.jl:560
Possible fix, define
view!(::AbstractArray{<:Any, 0})
Stacktrace:
[1] view!(a::BlockSparseArray{Float64, 0, Array{Float64, 0}, SparseArraysBase.SparseArrayDOK{Array{Float64, 0}, 0, BlockSparseArrays.GetUnstoredBlock{Tuple{}}}, Tuple{}}, index::Block{0, Int64})
@ BlockSparseArrays ~/.julia/packages/BlockSparseArrays/IRP80/src/BlockArraysExtensions/BlockArraysExtensions.jl:558
[2] (::BlockSparseArrays.var"#81#82"{Base.Fix1{typeof(Adapt.adapt), Type{…}}, BlockSparseArray{Float64, 0, Array{…}, SparseArraysBase.SparseArrayDOK{…}, Tuple{}}})(B::Block{0, Int64})
@ BlockSparseArrays ~/.julia/packages/BlockSparseArrays/IRP80/src/blocksparsearrayinterface/map.jl:157
[3] iterate
@ ./generator.jl:48 [inlined]
[4] _collect
@ ./array.jl:811 [inlined]
[5] collect_similar
@ ./array.jl:720 [inlined]
[6] map
@ ./abstractarray.jl:3371 [inlined]
[7] map_stored_blocks(f::Base.Fix1{typeof(Adapt.adapt), Type{Array}}, a::BlockSparseArray{Float64, 0, Array{Float64, 0}, SparseArraysBase.SparseArrayDOK{Array{…}, 0, BlockSparseArrays.GetUnstoredBlock{…}}, Tuple{}})
@ BlockSparseArrays ~/.julia/packages/BlockSparseArrays/IRP80/src/blocksparsearrayinterface/map.jl:157
[8] adapt_structure
@ ~/.julia/packages/BlockSparseArrays/IRP80/src/abstractblocksparsearray/adapt.jl:2 [inlined]
[9] adapt
@ ~/.julia/packages/Adapt/0LkKU/src/Adapt.jl:40 [inlined]
[10] print_array(io::IOContext{Base.TTY}, a::BlockSparseArray{Float64, 0, Array{Float64, 0}, SparseArraysBase.SparseArrayDOK{Array{Float64, 0}, 0, BlockSparseArrays.GetUnstoredBlock{Tuple{}}}, Tuple{}})
@ BlockSparseArrays ~/.julia/packages/BlockSparseArrays/IRP80/src/abstractblocksparsearray/wrappedabstractblocksparsearray.jl:396
[11] show(io::IOContext{Base.TTY}, ::MIME{Symbol("text/plain")}, X::BlockSparseArray{Float64, 0, Array{Float64, 0}, SparseArraysBase.SparseArrayDOK{Array{Float64, 0}, 0, BlockSparseArrays.GetUnstoredBlock{Tuple{}}}, Tuple{}})
@ Base ./arrayshow.jl:399
[12] (::OhMyREPL.var"#7#8"{REPL.REPLDisplay{REPL.LineEditREPL}, MIME{Symbol("text/plain")}, Base.RefValue{Any}})(io::IOContext{Base.TTY})
@ OhMyREPL ~/.julia/packages/OhMyREPL/PCbqB/src/output_prompt_overwrite.jl:23
[13] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
@ REPL ~/.julia/juliaup/julia-1.11.5+0.x64.linux.gnu/share/julia/stdlib/v1.11/REPL/src/REPL.jl:678
[14] display
@ ~/.julia/packages/OhMyREPL/PCbqB/src/output_prompt_overwrite.jl:6 [inlined]
[15] display
@ ~/.julia/juliaup/julia-1.11.5+0.x64.linux.gnu/share/julia/stdlib/v1.11/REPL/src/REPL.jl:399 [inlined]
[16] display(x::Any)
@ Base.Multimedia ./multimedia.jl:340
[17] top-level scope
@ REPL[28]:1
Some type information was truncated. Use `show(err)` to see complete types.
The problem comes from view!
, and indeed view!(x, Block())
and view!(x)
crash for both a
and b
. However it is unclear to me why show
has a different code path for a
and b
.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working