Skip to content

Commit ede6cbf

Browse files
committed
Make has_time_domain and get_time_domain more generic
1 parent f1b8e72 commit ede6cbf

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
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: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ Base.:-(k::ShiftIndex, i::Int) = k + (-i)
228228
229229
Return the time-domain type (`Continuous` or `InferredDiscrete`) that `op` operates on.
230230
"""
231-
function input_timedomain(s::Shift, arg = nothing)
231+
function input_timedomain(s::Shift, arg)
232232
if has_time_domain(arg)
233233
return get_time_domain(arg)
234234
end
@@ -240,26 +240,26 @@ end
240240
241241
Return the time-domain type (`Continuous` or `InferredDiscrete`) that `op` results in.
242242
"""
243-
function output_timedomain(s::Shift, arg = nothing)
244-
if has_time_domain(arg)
245-
return get_time_domain(arg)
243+
function output_timedomain(s::Shift, 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, _) = Continuous
251+
output_timedomain(s::Sample, _) = s.clock
252252

253-
function input_timedomain(h::Hold, arg = nothing)
253+
function input_timedomain(h::Hold, arg)
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, _) = Continuous
260260

261-
sampletime(op::Sample, arg = nothing) = sampletime(op.clock)
262-
sampletime(op::ShiftIndex, arg = nothing) = sampletime(op.clock)
261+
sampletime(_, op::Sample, _) = sampletime(op.clock)
262+
sampletime(_, op::ShiftIndex, _) = 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)