SciML / SciML/RecursiveArrayTools.jl
JET: similar_type(::Any) no-matching-method in RecursiveArrayToolsRaggedArrays (pre-existing QA red)
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 233
- Forks
- 76
- Avg merge
- 2h 17m
- Merged PRs (30d)
- 9
Description
The RecursiveArrayToolsRaggedArrays QA lane fails JET.test_package(...; target_defined_modules = true) with three similar_type(::Any) reports:
no matching method found `similar_type(::Any)`:
StaticArraysCore.similar_type(((dest::RecursiveArrayTools.AbstractRaggedVectorOfArray).u::Any)[i::Any]::Any)
These originate from the copyto!/fill paths in lib/RecursiveArrayToolsRaggedArrays/src/RecursiveArrayToolsRaggedArrays.jl (lines ~1335, 1347, 1468): JET infers dest.u[i] / VA.u[i] as ::Any because the abstract AbstractRaggedVectorOfArray .u field is untyped, so StaticArraysCore.similar_type(::Any) has no matching method.
This is pre-existing on master (verified: a clean origin/master checkout of the RaggedArrays QA group reports 10 passed, 2 failed — the Piracy false-positive plus this JET finding — before any QA-harness conversion). It is not introduced by the run_qa v1.6 conversion (https://github.com/SciML/RecursiveArrayTools.jl/pull/621). The conversion keeps the JET check as a hard test (behavior-preserving), so this lane remains red until the inference issue is addressed (e.g. tightening the .u field type or guarding the immutable-similar_type branch).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in lib/RecursiveArrayToolsRaggedArrays/src/RecursiveArrayToolsRaggedArrays.jl around lines 1335, 1347, and 1468, then inspect the AbstractRaggedVectorOfArray .u field and its copyto!/fill paths. Run the RecursiveArrayToolsRaggedArrays JET QA check to reproduce the similar_type(::Any) reports. Done means these JET findings no longer occur in the lane.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100