From 37cb48d287c821564f3986ace1f4c56d4158ed9b Mon Sep 17 00:00:00 2001 From: Chris Rackauckas Date: Fri, 4 Sep 2026 13:52:20 -0400 Subject: [PATCH] Drop the redundant axes(::SparsityPatternCSC, ::Integer) method `SparsityPatternCSC <: AbstractMatrix{Bool}` and defines `size`, so Base's `axes(A::AbstractArray, d)` already returns `OneTo(size(S, d))`. The extra method changes nothing for callers, but inserting it when the package loads invalidates every `axes(A, d)` call site compiled earlier with an abstract `A`; on the ModelingToolkit stack that is 2,049 instances, which throws away those packages' precompile caches as soon as OrdinaryDiffEq is loaded. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Fable 5.1 Agent-Harness: Claude Code 2.1.259 Agent-Model: claude-fable-5-1 Agent-Session: https://claude.ai/code/session_01FeJYXni9MkJhPFA9yxYvfn --- src/graph.jl | 1 - test/graph.jl | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/graph.jl b/src/graph.jl index 94954602..7f994f45 100644 --- a/src/graph.jl +++ b/src/graph.jl @@ -26,7 +26,6 @@ SparsityPatternCSC(A::SparseMatrixCSC) = SparsityPatternCSC(A.m, A.n, A.colptr, SparseArrays.indtype(::SparsityPatternCSC{T}) where {T} = T Base.size(S::SparsityPatternCSC) = (S.m, S.n) Base.size(S::SparsityPatternCSC, d::Integer) = d::Integer <= 2 ? size(S)[d] : 1 -Base.axes(S::SparsityPatternCSC, d::Integer) = Base.OneTo(size(S, d)) SparseArrays.nnz(S::SparsityPatternCSC) = length(S.rowval) SparseArrays.rowvals(S::SparsityPatternCSC) = S.rowval diff --git a/test/graph.jl b/test/graph.jl index 732b62ca..2a6211c4 100644 --- a/test/graph.jl +++ b/test/graph.jl @@ -69,8 +69,10 @@ using Test @test size(A, 1) == size(S, 1) @test size(A, 2) == size(S, 2) @test size(A, 3) == size(S, 3) + @test axes(A) == axes(S) @test axes(A, 1) == axes(S, 1) @test axes(A, 2) == axes(S, 2) + @test axes(A, 3) == axes(S, 3) end @testset "getindex" begin A = sprand(Bool, 100, 100, 0.1)