Skip to content

Trouble with categorical(v) when v is a SentinelArrays.ChainedVector #361

Closed
@ablaom

Description

@ablaom
using SentinelArrays, CategoricalArrays
v = ChainedVector([1:3, 4:5])
@assert v isa AbstractVector{Int}

julia> categorical(v)
ERROR: MethodError: copyto!(::CategoricalArrays.CategoricalVector{Int64, UInt32, Int64, CategoricalArrays.CategoricalValue{Int64, UInt32}, Union{}}, ::ChainedVector{Int64, UnitRange{Int64}}) is ambiguous. Candidates:
  copyto!(dest::Union{SubArray{var"#s5", N, var"#s4", I, L} where {var"#s5", var"#s4"<:(CategoricalArrays.CategoricalArray{T, var"#s3", R, V, C, U} where {var"#s3", V, C, U}), I, L}, CategoricalArrays.CategoricalArray{T, N, R, V, C, U} where {V, C, U}} where {T, N, R<:Integer}, src::AbstractArray) in CategoricalArrays at /Users/anthony/.julia/packages/CategoricalArrays/rDwMt/src/array.jl:615
  copyto!(dest::AbstractVector{T} where T, src::ChainedVector) in SentinelArrays at /Users/anthony/.julia/packages/SentinelArrays/1hMOA/src/chainedvector.jl:326
Possible fix, define
  copyto!(::Union{SubArray{T, 1, var"#s4", I, L} where {T, T1, R<:Integer, var"#s4"<:(CategoricalArrays.CategoricalArray{T1, var"#s3", R, V, C, U} where {var"#s3", V, C, U}), I, L}, CategoricalArrays.CategoricalVector{T, R, V, C, U} where {C, U, T, R<:Integer, V}}, ::ChainedVector)                                                                              
Stacktrace:
 [1] _convert(::Type{CategoricalArrays.CategoricalVector{Int64, UInt32, V, C, U} where {V, C, U}}, A::ChainedVector{Int64, UnitRange{Int64}}; levels::Nothing)
   @ CategoricalArrays ~/.julia/packages/CategoricalArrays/rDwMt/src/array.jl:343
 [2] (CategoricalArrays.CategoricalVector{Int64, UInt32, V, C, U} where {V, C, U})(A::ChainedVector{Int64, UnitRange{Int64}}; levels::Nothing, ordered::Bool)                     
   @ CategoricalArrays ~/.julia/packages/CategoricalArrays/rDwMt/src/array.jl:253
 [3] #categorical#72
   @ ~/.julia/packages/CategoricalArrays/rDwMt/src/array.jl:927 [inlined]
 [4] categorical(A::ChainedVector{Int64, UnitRange{Int64}})
   @ CategoricalArrays ~/.julia/packages/CategoricalArrays/rDwMt/src/array.jl:926
 [5] top-level scope
   @ REPL[83]:1
  [324d7699] CategoricalArrays v0.10.0
  [91c51154] SentinelArrays v1.3.5
julia> versioninfo()
Julia Version 1.6.0
Commit f9720dc2eb (2021-03-24 12:55 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin19.6.0)
  CPU: Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
Environment:
  JULIA_LTS_PATH = /Applications/Julia-1.0.app/Contents/Resources/julia/bin/julia
  JULIA_PATH = /Applications/Julia-1.6.app/Contents/Resources/julia/bin/julia
  JULIA_EGLOT_PATH = /Applications/Julia-1.5.app/Contents/Resources/julia/bin/julia
  JULIA_NUM_THREADS = 5
  JULIA_NIGHTLY_PATH = /Applications/Julia-1.7.app/Contents/Resources/julia/bin/julia

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions