diff --git a/Project.toml b/Project.toml index 5c3a5607e..16cb9c879 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ChainRules" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.71.0" +version = "1.71.1" [deps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" diff --git a/src/rulesets/Base/array.jl b/src/rulesets/Base/array.jl index 7e4098509..d1a9d14c9 100644 --- a/src/rulesets/Base/array.jl +++ b/src/rulesets/Base/array.jl @@ -220,6 +220,11 @@ end # All the [hv]cat functions treat anything that's not an array as a scalar. _catsize(x) = () _catsize(x::AbstractArray) = size(x) +_catsize(::LinearAlgebra.UniformScaling) = error( + """ChainRules does not at present support *cat functions with LinearAlgebra.I + as it does not know how to calculate the size occupied in e.g. `[1:4 I 5:8]`. + Writing instead `[1:4 I(4) 5:8]` should work. + Issue tracking this is here: https://github.com/JuliaDiff/ChainRules.jl/issues/810""") function rrule(::typeof(hcat), Xs...) Y = hcat(Xs...) # note that Y always has 1-based indexing, even if X isa OffsetArray