Skip to content

Commit 9444479

Browse files
authored
Merge pull request #3026 from SciML/myb/generic
Make has_time_domain and get_time_domain more generic
2 parents 8f75e90 + a101efc commit 9444479

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

src/clock.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ function is_continuous_domain(x)
3333
!has_discrete_domain(x) && has_continuous_domain(x)
3434
end
3535

36+
get_time_domain(_, x) = get_time_domain(x)
3637
function get_time_domain(x)
3738
if iscall(x) && operation(x) isa Operator
3839
output_timedomain(x)
@@ -42,6 +43,7 @@ function get_time_domain(x)
4243
end
4344
get_time_domain(x::Num) = get_time_domain(value(x))
4445

46+
has_time_domain(_, x) = has_time_domain(x)
4547
"""
4648
has_time_domain(x)
4749

src/discretedomain.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -241,25 +241,25 @@ end
241241
Return the time-domain type (`Continuous` or `InferredDiscrete`) that `op` results in.
242242
"""
243243
function output_timedomain(s::Shift, arg = nothing)
244-
if has_time_domain(arg)
245-
return get_time_domain(arg)
244+
if has_time_domain(t, arg)
245+
return get_time_domain(t, arg)
246246
end
247247
InferredDiscrete
248248
end
249249

250-
input_timedomain(::Sample, arg = nothing) = Continuous
251-
output_timedomain(s::Sample, arg = nothing) = s.clock
250+
input_timedomain(::Sample, _ = nothing) = Continuous
251+
output_timedomain(s::Sample, _ = nothing) = s.clock
252252

253253
function input_timedomain(h::Hold, arg = nothing)
254254
if has_time_domain(arg)
255255
return get_time_domain(arg)
256256
end
257257
InferredDiscrete # the Hold accepts any discrete
258258
end
259-
output_timedomain(::Hold, arg = nothing) = Continuous
259+
output_timedomain(::Hold, _ = nothing) = Continuous
260260

261-
sampletime(op::Sample, arg = nothing) = sampletime(op.clock)
262-
sampletime(op::ShiftIndex, arg = nothing) = sampletime(op.clock)
261+
sampletime(op::Sample, _ = nothing) = sampletime(op.clock)
262+
sampletime(op::ShiftIndex, _ = nothing) = sampletime(op.clock)
263263

264264
changes_domain(op) = isoperator(op, Union{Sample, Hold})
265265

src/systems/clock_inference.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ function ClockInference(ts::TransformationState)
1212
var_domain = TimeDomain[Continuous for _ in 1:ndsts(graph)]
1313
inferred = BitSet()
1414
for (i, v) in enumerate(get_fullvars(ts))
15-
d = get_time_domain(v)
15+
d = get_time_domain(ts, v)
1616
if is_concrete_time_domain(d)
1717
push!(inferred, i)
1818
var_domain[i] = d

0 commit comments

Comments
 (0)