Skip to content

Commit af24aa8

Browse files
wsmosesgiordanogithub-actions[bot]
authored
Ref ptr fix (#698)
* Ref ptr fix * remove eval * Fix comma * syntax fix * fix * fix * Apply formatting suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent c325683 commit af24aa8

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed

src/Tracing.jl

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -366,15 +366,41 @@ end
366366

367367
for P in (Ptr, Core.LLVMPtr, Base.RefValue)
368368
@eval Base.@nospecializeinfer function traced_type_inner(
369-
@nospecialize(PT::Type{<:$P}),
369+
@nospecialize(PT::Type{$P}),
370370
seen,
371371
mode::TraceMode,
372372
@nospecialize(track_numbers::Type)
373373
)
374-
T = eltype(PT)
375-
return $P{traced_type_inner(T, seen, mode, track_numbers)}
374+
return $P
376375
end
377376
end
377+
for P in (Ptr, Base.RefValue)
378+
@eval Base.@nospecializeinfer function traced_type_inner(
379+
@nospecialize(PT::Type{$P{T}}),
380+
seen,
381+
mode::TraceMode,
382+
@nospecialize(track_numbers::Type)
383+
) where {T}
384+
return $P{traced_type_inner(PT.parameters[1], seen, mode, track_numbers)}
385+
end
386+
end
387+
388+
Base.@nospecializeinfer function traced_type_inner(
389+
@nospecialize(PT::Type{Core.LLVMPtr{T}}),
390+
seen,
391+
mode::TraceMode,
392+
@nospecialize(track_numbers::Type)
393+
) where {T}
394+
return Core.LLVMPtr{traced_type_inner(PT.body.parameters[1], seen, mode, track_numbers)}
395+
end
396+
Base.@nospecializeinfer function traced_type_inner(
397+
@nospecialize(PT::Type{Core.LLVMPtr{T,A}}),
398+
seen,
399+
mode::TraceMode,
400+
@nospecialize(track_numbers::Type)
401+
) where {T,A}
402+
return Core.LLVMPtr{traced_type_inner(PT.parameters[1], seen, mode, track_numbers),A}
403+
end
378404

379405
Base.@nospecializeinfer function traced_type_inner(
380406
@nospecialize(VT::Type{<:Val}),

test/tracing.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,11 @@ end
165165
NTuple{nsteps,SpectralVariable3D} where {nsteps,SpectralVariable3D},
166166
NTuple{nsteps,SpectralVariable3D} where {nsteps,SpectralVariable3D},
167167
),
168+
(
169+
Base.RefValue{A} where {A},
170+
Base.RefValue{A} where {A},
171+
Base.RefValue{A} where {A},
172+
),
168173
(Wrapper{Symbol,Symbol}, Wrapper{Symbol,Symbol}, Wrapper{Symbol,Symbol}),
169174
(
170175
Wrapper{Float64,Vector{Float64}},

0 commit comments

Comments
 (0)